Code32er中的unit32_t大小错误

时间:2017-12-11 15:19:12

标签: code-composer

我正在开发基于C ++的项目,我在下面的语句中收到一个错误:

代码:

typedef char pb_static_assertion_UINT32_T_WRONG_SIZE3507__COUNTER__ [(sizeof(uint32_t)== 4)? 1: - 1]; //我收到错误的行

错误: " C:\ Users \ tkumar \ Documents \ LDRA \ LDRAunit_C_CPP_9.7.1 \ trial \ inszt_algctivationgateway.cpp",第4330行:错误#95:数组的大小必须大于零&#34 ;

参考: uint32_t使用:

定义

typedef unsigned long uint32_t;

我怀疑无条件的长尺寸,这里有人解释告诉我这个错误背后的原因吗?

1 个答案:

答案 0 :(得分:0)

1)Code-Composer编译器以COFF或EABI格式输出对象。当选择COFF时,至少对于某些微处理器,无符号长度为40位。选择EABI时,它是32位。 2)对于某些TI微处理器,例如C2000系列,最小的可寻址字是16位,而对于32位类型,sizeof将输出2而不是4。 3)其中一个或另一个可能导致你的sizeof语句返回4以外的东西,导致?:选择-1。所以数组大小小于0。 4)在typedef之后不要认为你真的想要一个数组。