Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rgallea

Que operação é essa?

Recommended Posts

Essa é a parte de um programa em C no qual estou tentando passar para pascal.Porem tem uma linha que eu não compreendo oque o programa tenta fazer.

 

typedef struct {WORD MagicNumber; BYTE HeaderType; BYTE SubChannelNumber; WORD NumChansToFollow; WORD Reserved1[2];DWORD NumBytesThisRecord; WORD Year; // Computer date when this record was savedBYTE Month;BYTE Day;BYTE Hour; // Computer time when this record was savedBYTE Minute;BYTE Second;BYTE HSeconds; // hundredths of seconds (0-99)WORD JulianDay; // Number of days since January 1WORD CurrentLineID; // [i] Current line ID from serial portWORD EventNumber; // [O] Last logged event numberBYTE ReservedSpace2[11]; // Currently unused} XHEADER;int infl=0;unsigned int amt;unsigned char *buffer = NULL;void ReadFile(int infl) {/***************************************************************************************/// Given a handle to on open file, read through the file and// print out some data about it.//// Read the file header//if (ReadHeader(infl, FileHeader) == FALSE) return;ProcessHeader(FileHeader);//// Read the file one packet at a time//while ((amt = ReadFormatFileData(infl, buffer)) != 0xFFFF) {//// Buffer now holds a single record which can be processed // here. The return value from ReadFormatFileData()// holds byte length of the data record //XHEADER *PingHeader = (XHEADER *) buffer; // o que ele esta fazendo ??????????????????switch (Header->HeaderType) {case _HEADER_S: ptr = "SNR "; NumSnr++;ProcessSnr((XHEADER *) PingHeader);break;
.......................

 

 

Se alguem souber oq a linha em vermelho significa por favoooorr me dê uma luz.

a minha duvida é saber oq significa (XHEADER *) oq esse asterísco significa?

Obrigado a todos q puderem me ajudar.

 

Rubens

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hm... ele ta criando alguma variável do tipo XHEADER e ta atribuindo a ela um valor convertido do buffer.

 

 

Por exemplo

 

 

Em thread, quando recebido um LPVOID, vamos supor que recebeu o valor 65, e usar:

 

printf("Recebido o character %c",(char)variavelrecebida);

 

Ali no (char)variavelrecebida significa que ele ta convertendo aquilo pra char.

 

XHEADER eu não sei o que é mas posso lhe dizer que é um tipo de variável que o programa cria e atribui a ela o buffer.

 

E o asterístico significa, por exemplo:

 

char* = string

 

FILE* = arquivo

 

XHEADER* deve ser um header alguma coisa com mais de um character, sei lá eu.

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

(XHEADER*) buffer é um casting. você está convertendo um ponteiro de um unsigned char p/ um ponteiro de XHEADER.

 

Vou editar o título do tópico. Procure escrever títulos condizentes com a dúvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.