在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)
答案 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,则无法编译。