找不到任何有关的文档-Wno-four-char-constants
,但是我怀疑它类似于-Wno-multichar
。我对么?
它们是相关的,但不是同一件事。
编译与-Wall --pedantic
标志,分配:
int i = 'abc';
产生:
警告:多字符字符常量 [-Wmultichar]
同时使用 GCC 和 CLANG,同时:
int i = 'abcd';
产生:
GCC 警告:多字符字符常量 [-Wmultichar]
CLANG 警告:多字符字符常量 [-Wfour-char-constants]
标准(C99标准与勘误包括 TC1、TC2 和 TC3,第 6.4.4.4 小节 - 字符常量)指出:
包含多个字符的整型字符常量的值(例如,'ab'
), [...] 是实现定义的。
多字符总是解析为int
但是,由于字符打包成一个的顺序int
未指定,多字符常量的可移植使用很困难(确切的值是依赖于实现).
编译器在处理不完整多字符的方式上也有所不同(例如'abc'
).
有些编译器在左侧填充,有些在右侧填充,无论字节序如何(有些编译器可能根本不填充)。
能够接受完整多字符的可移植性问题的人可能无论如何都想要对不完整的多字符发出警告(-Wmultichar -Wno-four-char-constants
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)