当前位置: 代码迷 >> 综合 >> TI CCS3.3 编译时显示 “nonstandard type for a bit field” 警告信息
  详细解决方案

TI CCS3.3 编译时显示 “nonstandard type for a bit field” 警告信息

热度:63   发布时间:2024-01-13 15:59:34.0

TI论坛关于此提示 http://e2e.ti.com/support/development_tools/compiler/f/343/t/91483.aspx

According to the C89 standard, which our compiler adheres to, "unsigned short" is not a standard type for bit fields. Some compilers may support it as a non standard extension, however that will make the code not guaranteed to be portable between compilers. Some discussion about it is here: http://processors.wiki.ti.com/index.php/C6000_EABI_Migration#Bit-Field_Layout

The -pr option(relaxed ANSI check) will help avoid the warning as it tells the compiler to not perform strict ANSI C checking. 


Aarti never says it explicitly, but note that the TI compiler does support bit-fields with type unsigned short; it just warns that it is nonstandard (with respect to C89).

Bit-fields themselves are not all that portable because the rules for layout in memory allow some variation.  Most compilers will support this kind of bit-field (and it is standard in C++). So portability is not likely to be further compromised by non-standard integral types in most situations. 

Note that you can suppress just that specific warning with the -pds=232 option (long form: --diag_suppress=232) or by using the equivalent pragma in the source.


  相关解决方案