gpt4 book ai didi

GCC 编译器选项 -wno-four-char-constants 和 -wno-multichar

转载 作者:行者123 更新时间:2023-12-02 03:03:36 27 4
gpt4 key购买 nike

找不到有关 -Wno-four-char-constants 的任何文档,但我怀疑它与 -Wno-multichar 类似。我说得对吗?

最佳答案

它们是相关的,但不是同一件事。

使用 -Wall --pedantic 标志进行编译,赋值:

int i = 'abc';

产生:

warning: multi-character character constant [-Wmultichar]

同时使用 GCC 和 CLANG,同时:

 int i = 'abcd';

产生:

GCC warning: multi-character character constant [-Wmultichar]

CLANG warning: multi-character character constant [-Wfour-char-constants]

<小时/>

该标准(包含勘误表 TC1、TC2 和 TC3 的 C99 标准,第 6.4.4.4 小节 - 字符常量)指出:

The value of an integer character constant containing more than one character (e.g., 'ab'), [...] is implementation-defined.

多字符始终解析为 int,但由于未指定将字符打包到一个 int 中的顺序,因此可移植使用多字符常量很困难(确切的值依赖于实现)。

编译器在处理不完整的多字符(例如 'abc')的方式上也有所不同。

有些编译器在左侧填充,有些在右侧填充,无论字节顺序如何(有些编译器可能根本不填充)。

能够接受完整多字符可移植性问题的人可能无论如何都想要对不完整多字符发出警告(-Wmultichar -Wno-four-char-constants)。

关于GCC 编译器选项 -wno-four-char-constants 和 -wno-multichar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47304722/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com