|
•From: Barbara Morris <bmorris@xxxxxxxxxx>
•Date: Tue, 19 Aug 2014 19:34:48 -0400
p_QDFFBASE + p_QDFFBASE->WDFFINOF
says to add the offset p_QDFFBASE->WDFFINOF to the pointer p_QDFFBASE.
In C, when you add an offset, say 5, to a pointer, it doesn't add 5 bytesto the pointer,
it adds 5 multiples of the type of the pointer.
So if p_QDFFBASE is a pointer to a structure of length 32,
adding 5 to the pointer would actually add 5*32 bytes.
(char *) p_QDFFBASE
means to interpret p_QDFFBASE as a pointer to char,
no matter what type p_QDFFBASE actually is.
This forces the addition of the offset to be in bytes.
(QDFFINFO_t *) casts the resulting pointer to be a pointer to a QDFFINFO_tstructure,
which allows it to be assigned to p_QDFFINFO.
So the whole thing means to take the p_QDFFBASE pointer,
add p_QDFFBASE->WDFFINOF bytes to it, and assign it to p_QDFFINFO.
On 2014-08-19 09:10, Frank Kolmann wrote:
also I must admit I dont really know what this code means
p_QDFFINFO = (QDFFINFO_t *)((char *) p_QDFFBASE + p_QDFFBASE->WDFFINOF);
I know it sets a pointer to the data but what does
(QDFFINFO_t *)((char *) mean ?
•From: Barbara Morris <bmorris@xxxxxxxxxx>
•Date: Tue, 19 Aug 2014 19:44:46 -0400
The CZM0280 is telling you that you can't pass a char where a const char *is wanted.
The reason that WDFARFNM works in the strncmp is that WDFARFNM is a chararray,
aka char *. WDFFFIOA is just a char.
So as Scott says, you can just compare it directly to 0x01.
This is an example of the compile error I am getting.
218 17 | if (strncmp(p_QDFFFINF->WDFFFIOA, Attrib, 1) == 0)
types*=SEVERE==========> a - CZM0280 Function argument assignment between
"const char*" and "char" is not allowed.
...
fine.However there are other uses of strncmp in the program that compile just
This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.