64Byteピッタリの構造体を作成したい場合ですが
typedef struct{ char cmd; char len; char str; char pad[sizeof(USB_CMD)-offsetof(USB_CMD,pad)];} USB_CMD;
のようにするとCS+で
(E) E0520020 usb_cmd.h(18):E0520020:Identifier "offsetof" is undefined usb_cmd.h 18 gen.mtpj
(E) E0520020 usb_cmd.h(18):E0520020:Identifier "USB_CMD" is undefined usb_cmd.h 18 gen.mtpj
(E) E0520020 usb_cmd.h(18):E0520020:Identifier "pad" is undefined usb_cmd.h 18 gen.mtpj
(E) E0520059 usb_cmd.h(18):E0520059:Function call is not allowed in a constant expression usb_cmd.h 18 gen.mtpj
等が発生するのです、(当たり前かな)ここでpad部分でこのUSB_CMDを64Byteに調整したいのですが
union等使用する方法もありますが、文字が多くなるため、このような方法でできないかと思っています
良い方法があるのでしょうか?
> 64Byteピッタリの構造体を作成したい場合ですが
typedef union { struct{ char cmd; char len; char str; }; char pad[64 * 1024]; } USB_CMD;