rgallea 0 Denunciar post Postado Março 4, 2004 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
cfuser 0 Denunciar post Postado Março 14, 2004 Qual linha em vermelho? Compartilhar este post Link para o post Compartilhar em outros sites
rgallea 0 Denunciar post Postado Março 15, 2004 é essa: XHEADER *PingHeader = (XHEADER *) buffer; Compartilhar este post Link para o post Compartilhar em outros sites
DAVIFN 0 Denunciar post Postado Novembro 16, 2012 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
_Isis_ 202 Denunciar post Postado Novembro 16, 2012 (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