#if sizeof(CanDivePacket) != sizeof(CanPacket)
#error CanPacket has wrong size
#endif
Tyvär kompilerar inte koden och kompilatorn och ger felmeddelandet:
G:\embeded\trunk\Programming\com\CanDiveHelper.h:283:Error [1029] malformed expression in '#if'
finns det något annat sätt att kontrollera storleken på en strukt t.ex utan "sizeof" kommandot?
Det vore lite märkligt om preprocessorn kände till struct-storlekar. Hur vore att köra lite tester i början av programmet och blinka frenetiskt med lysdioder el dyl om något felar?
Det är en lösning men känns ganska klumpig eftersom man behöver prorgrammera kretsen för att få reda på svaret. sizeof( nån strukt) är en konstant så jag hoppades på att det gick att lösa på något sätt innan under eller efter kompileringen. Men går det inte så får det givetvis bli den slutliga lösningen
finns det något annat sätt att kontrollera storleken på en strukt t.ex utan "sizeof" kommandot?
Räkna manuellt, det borde väl genereras nån form av statistikfil att kika på.
Och nej sizeof kan inte fungera i preprocessorn då variablerna och konstanterna varken är skapade eller initierade.
Jag räknar mauellt men vill vara säker på att jag gjort rätt eftersom jag gör en union med en massa variabler och vill kontrollera att man inte av misstag överskridit max-storlek. Jag vet att det inte går att använda sizeof och frågar efter en alternativ lösning.