结构大小限制注意警报

时间:2017-02-15 05:25:03

标签: struct size sizeof

在C中,如何在项目增加期间注意结构大小溢出的注意事项

示例(我在项目开始时的结构

//32 bytes size!
typedef struct
{
    u8  Ver:8;
    u8  HasAnyData:8;
    u16 Ymin:16;
    u16 Ymax:16;
    u16 Xmax:16;
    u16 PokerInterval:16;
    u16 PokerDuration:16;
    u16 MinimumWeight:16;
    u32 tmp1:16;
    u32 tmp2:32;
    u32 tmp3:32;
    u32 tmp4:32;
    u32 tmp5:32;
} ConfData_t;

在此定义之后,我从闪存中读取

PP_ReadConfig(32,&confData);

如果struct size小于32个字节,可能会出现问题 我应该用计算器进行错误检查。

编译器配置有什么标准方法吗?

P.S而不是sizeof(confData)

1 个答案:

答案 0 :(得分:0)

如果您正在使用public void TriggerStart() { //This counts the number of active cameras and set the FOV to 40 for (int i = 0; i < Camera.allCamerasCount; i++) { Camera.allCameras[i].fieldOfView = 40; } } ,请考虑How to create a data table on the fly in Spotfire via python在编译时检查C11

例如:

sizeof

如果将struct修改为sizeof小于32,则无法编译。