Ir para conteúdo

Arquivado

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

rgallea

em C (desculpe colocar num tópico de c++)

Recommended Posts

Bem primeiramente desculpe por colocar uma divida de c em um forum de c++.

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 saved

BYTE Month;

BYTE Day;

BYTE Hour; // Computer time when this record was saved

BYTE Minute;

BYTE Second;

BYTE HSeconds; // hundredths of seconds (0-99)

WORD JulianDay; // Number of days since January 1

WORD CurrentLineID; // Current line ID from serial port

WORD EventNumber; // [O] Last logged event number

BYTE 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

E ae kra... blza ?trabalho a pouco tempo com c, mais acho q posso te ajudar um pouco, alguem me corrija se eu estiver errado... :blink: hehehetypedef struct {WORD MagicNumber; ...BYTE ReservedSpace2[11]; // Currently unused} XHEADER;::: aqui você está dando um apelido ao registro unsigned char *buffer = NULL;::: esse * significa que isso é um ponteiro para uma variável do tipo char, e você está apontando ele para NULOXHEADER *PingHeader = (XHEADER *) buffer;::: aqui voce está criando um ponteiro para o registro que você tinha criado anteriormente. agora o resto eu tbn desconheço...espero ter ajudado... B)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até ai eu entendi , eu só não entendo o outro lado da igualdade(XHEADER *) buffer; .Oque ele faz ?Obrigado pela ajuda , mas a busca permanece.Se alguem souber por favor!!!M-E A-J-U-D-Egrato

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.