Hallo,
ich habe hier eine Codepassage aus einem extern eingebundenen C-Code
(zur Ansteuerung von IO-Modulen über Ethernet), der mir beim Compilieren
immer die folgende Warnung bring:
> integral size mismatch in argument; conversion supplied
Compiliert wird das ganze unter Microsoft Embedded Visual C++ 4.0 für
ein Windows CE-Gerät (x86) und funktioniert auch, mich stört allerdings
diese Warnung, deren Sinn ich nicht verstehe. Vielleicht kann mir ja
jemand sagen, was diese Warnung auslöst (und welche "conversion" der
Compiler "supplied") bzw. ob sie sicher ignoriert werden kann. Die mit
Google oft gefundene Erklärung, es würde eine Klammer fehlen, trifft
hier meiner Ansicht nach nicht zu (im Gegensatz, sogar eine zu viel) und
sämtliche Versuche, die Klammern anders zu setzten haben auch nichts
geholfen.
Programmausschnitt (der Fehler bezieht sich auf die letze Zeile)
1 | typedef struct {
|
2 | INT16 nodeHandle;
|
3 | USIGN16 command;
|
4 | USIGN16 length;
|
5 | } CTRL_BLOCK
|
6 |
|
7 | CTRL_BLOCK *ptr;
|
8 | USIGN32 addr;
|
9 |
|
10 | addr = ntohs((((USIGN16 *)(ptr + 1))[0] << 16)) | ntohs(((USIGN16 *)(ptr + 1))[1]);
|