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

2024-03-24

找不到任何有关的文档-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(使用前将#替换为@)

GCC 编译器选项 -wno-four-char-constants 和 -wno-multichar 的相关文章

  • 使用 CMake 链接 .s 文件

    我有一个我想使用的 c 函数 但它是用Intel编译器而不是gnu C编译器 我在用着cmake构建程序 我实际上正在使用ROS因此rosmake但基础是cmake所以我认为这更多是一个 cmake 问题而不是ROS问题 假设使用构建的文件
  • gem install pg 错误:无法理解 Yosemite w/ Ruby 2.1.5 上的 kern.osversion `14.0.0'

    我使用 RVM 安装 Ruby 2 1 5 并再次运行捆绑包 现在 pg gem 无法安装 我收到此错误 gem install pg v 0 17 1 with pg config Applications Postgres app Co
  • gevent 无法在 OS X Capitan 上的 python 虚拟环境中安装

    我刚刚安装了 OS X Capitan 并尝试在 python2 7 x 虚拟环境中安装 gevent 这就是我得到的 看起来像是与 gcc 有关的东西 这是回溯 Building wheels for collected packages
  • 如何使用 devtoolset-8-gcc 安装 gcc8

    我使用的是 CentOS Linux 版本 7 3 1611 其中安装了 gcc 4 8 5 20150623 我正在寻找一种安装较新版本的 gcc 的方法 特别是 8 1 我找到了以下关于如何安装 gcc v7 的网站link 1 htt
  • 如何使用 Intel 语法内联汇编在 GCC 中设置变量?

    为什么这个代码没有设置temp到 1 我实际上该如何做到这一点 int temp asm intel syntax mov 0 eax mov eax 1 att syntax r 1 r temp eax printf d n temp
  • 如何关闭MIPS-GCC自动指令重排序?

    继这个问题之后 使用跳转 和链接 指令的奇怪 MIPS 汇编器行为 https stackoverflow com questions 3807480 weird mips assembler behavior with jump and
  • 比较两个map::iterators:为什么它需要std::pair的复制构造函数?

    下面非常简单的代码在 C 98 中编译和链接时不会发出警告 但在 C 11 模式中会出现难以理解的编译错误 include
  • CMake:不支持的 GNU 版本 - 不支持高于 8 的 gcc 版本

    在降级我的 GCC 之前 我想知道是否有一种方法可以确定我的机器中的哪些程序 框架或依赖项将被破坏 以及是否有更好的方法来安装 openpose 例如 更改 CMake 中的某些内容 有没有办法可以解决这个问题 而无需更改我的系统 GCC
  • #pragma pack、模板类型定义和结构对齐

    使用 Visual Studio 或 gcc 如果有的话 pragma pack push 16 typedef std map
  • 如何与android的静态boost库链接?

    我在使用 Android ndk r5b 将 boost 库移植和链接到 android 时遇到问题 我首先使用以下步骤构建 boost 库 没有 mpi python 1 注释掉boost 1 46 0 libs thread build
  • 在编译时将多个文件中的变量收集到单个连续的内存块中

    我想在多个 c 文件中定义 并初始化 结构体的多个实例 但我希望它们在编译时收集到一个连续的数组中 我一直在研究使用自定义部分并使用该部分的开始和结束地址作为结构数组的开始和结束 但我还没有完全弄清楚细节 而且我不想编写自定义部分链接器脚本
  • 使用 -fno-access-control 进行单元测试

    我见过许多在单元测试时访问私有变量的疯狂方法 我见过的最震撼人心的是 define private public 但是 我从未见过有人建议在编译器级别关闭私有变量 我一直以为你不能 我向许多开发人员抱怨说 如果您可以告诉编译器放弃这个文件
  • 为 iOS6.0 ARMv7 处理器构建 FFMPEG 库

    WARNING 我刚刚被另一位用户告知 在 iOS 上使用 FFMPEG 存在一些法律问题 请在此处留下链接http multinc com 2009 08 24 compatibility Between the iphone app s
  • LLVM到底是什么?

    我一直听说 LLVM 它是 Perl 语言 然后是 Haskell 语言 然后有人用其他语言使用它 它是什么 它与 GCC 到底有什么区别 视角 安全等 LLVM 是一个用于构建 优化和生成中间和 或二进制机器代码的库 LLVM 可以用作编
  • 对“lzma_code”的未定义引用

    我尝试打包我的应用程序并静态链接所有库 但我收到此错误 Makefile 如下所示 CC gcc INCPATH I home johnny Application FileBasedReG include RealityGrid LIBS
  • gcc何时编译未使用的模板代码?

    我有以下 诚然是人为的 代码 可以在 gcc 6 中编译得很好 但不能在 gcc 7 中编译 请注意 在定义中使用了未声明的构造函数bar 如果函数在代码中的其他地方被引用 取消注释 这应该打印一个错误foo bar 导致 gcc 6 打印
  • 让 clang-tidy 修复头文件

    我正在将当前使用 gcc 编译的项目移至 clang 并有一堆 gcc 没有生成的警告 Winconsistent missing override clang tidy致力于修复这些错误 cpp文件 但是它不触及hpp文件 因为在数据库中
  • 如何检测 gcc 5 的线程清理程序

    如何检测使用 gcc 5 的构建是否已打开线程清理程序 两者之间都没有 has feature thread sanitizer nor SANITIZE THREAD work include
  • 转换为“const Y”不适用于 clang 上的“R&&”

    以下代码可以正常编译g GCC 4 7 1 20120721 但 最近构建失败clang version 3 2 trunk struct Y struct X operator const Y const return Y void f
  • 为什么 typeof 函数在 C 中不起作用

    我使用GCC编译器 版本9 2 0 我想在 C 中使用 typeof 函数 但它会引发错误 错误 typeof 之前的预期表达式 如果您需要更多信息 请询问我 int a 5 double b the expected result is

随机推荐

  • 如何在 Rust 中返回字符串向量

    如何通过分割中间有空格的字符串来返回字符串向量 fn line to words line str gt Vec
  • 如何在Raku中逐行读取gz文件

    我正在尝试在 Raku 中逐行读取一个巨大的 gz 文件 我正在尝试做这样的事情 my file huge file gz for file IO lines gt line say line 但这给出了我的 UTF 8 格式错误的错误 我
  • OpenCV::dnn::readNet 抛出异常

    我正在关注本教程 https learnopencv com object detection using yolov5 and opencv dnn in c and python 加载yolov5 onnx使用 OpenCV DNN 模
  • CPU如何对指令重新排序

    我最近读到了有关 CPU 指令重新排序以提高效率的内容 但我无法理解CPU如何重新排序其指令 我的意思是编译时重新排序是可以想象的 因为编译器可以预见即将到来的代码 但是对于一个接一个地读取指令的CPU 它如何看到即将到来的指令并对它们重新
  • 计算实验室信息系统 (LIS) 帧的校验和

    我正在开发一个仪器驱动程序实验室信息系统 https www limswiki org index php Laboratory information system 我想知道如何计算帧的校验和 校验和算法说明 用字符 0 9 和 A F
  • 我应该在每个视图中都有一个 NSFetchedResultsController 吗?

    我在我的第一个 iPhone 应用程序中使用 Core Data 并尝试理解 NSFetchedResultsController 它在我的根视图中效果很好 我是否需要在每个视图控制器中实例化一个实例 如果是这样 是否有一个模板可以使这像在
  • Ruby on Rails 教程自定义 CSS 未显示在应用程序中

    我正在运行 Michael Hartl 的 Ruby on Rails 教程 我的 boostrap sass 正在工作 但是我无法显示任何自定义修改 在第 5 5 章中 我们添加了 bootstrap sass gem 这是我的 Gem
  • 删除 javascript 字符串中的元音变音或特殊字符

    以前从未在 javascript 字符串中使用变音符号或特殊字符 我的问题是如何删除它们 例如我在 javascript 中有这个 var oldstr Bayern M nchen var str oldstr split join 结果
  • PurgeCSS 不会从 NextJS 项目中删除未使用的 CSS

    我正在尝试使用 PurgeCSS 从我的 NextJS 项目中删除未使用的 css 然而 我很难将 PurgeCSS 最基本的集成到我的项目中来工作 我正在使用这个文档 https www purgecss com guides next
  • 以编程方式清除 win 7 中的图标缓存 - 使用 C# 或 Visual Basic 执行 ie4uinit.exe-ClearIconCache

    我们更改了 WPF 应用程序的徽标图标 然后更改了主可执行文件的图标 在我的 Win 7 电脑上 刷新图标缓存时出现问题 主可执行文件的桌面快捷方式以及可执行文件图标的预览在 Windows 资源管理器中仍然显示旧图标 即使重新启动系统 问
  • Scala:将数组放入集合或映射中的轻量级方法

    Since 不适用于数组 我无法有效地创建一组数组 或带有数组键的映射 我宁愿不承受将数组转换为向量或列表或其他东西的性能损失 是否有一种轻量级的方法来定义数组上的自然比较和哈希码 以便我可以将它们放在集合中 Use WrappedArra
  • 异步 CMIS 客户端:与 OpenCMIS 并行下载或上传多个文件

    The OpenCMIS 0 14 的变更日志 https www mail archive com announce apache org msg03240 html says 客户端添加了对异步操作的支持 图书馆 作为 CMIS 客户端
  • L2 逐出时从 L1 缓存逐出缓存

    我有一个关于内存系统遵循的策略的基本问题 考虑具有私有 L1 和 L2 缓存的核心 在二级缓存之后 我们有一个总线 一致性流量在该总线上运行 现在 如果地址 X 的缓存线从二级缓存中逐出 是否有必要从一级缓存中逐出该地址 驱逐的原因可能是它
  • 从 Node.JS 调用 Haskell

    我想从 Node js 对 Haskell 代码进行 RPC 调用 Node 和 Haskell 都有哪些库 我只能找到 XML RPC 和 Zeromq 但它们似乎不稳定 对于 Haskell 端的 xml rpc haxr 库已经存在很
  • MySQL/Python -- 提交的更改未出现在循环中

    使用 MySQL Connector Python 我有一个循环 每 2 秒检查一次值是否发生变化 没有所有的内容 这是循环 打印是为了测试目的 try while True request database get row table s
  • 将文件从请求移动或复制到多个位置

    我正在使用 Laravel 并接受输入和文件上传 此页面接受用户想要对订单进行的更改 最终目标是获取此输入并将其应用于多个订单 我可以重复使用每个订单的输入 但是 对于我来说 将该请求中的文件复制到多个目录的好方法是什么 例如 如文档中所示
  • SQL Server 中的条件条件

    我有一个包含 3 个值的组合框 All Failed Completed ALL 加载所有行 无条件 Failed and Completed 在 状态 列上加载条件 ALL SELECT FROM tbl Location 失败和完成 S
  • 如何在不使用 conda 的情况下从源代码安装 Bob

    Bob https www idiap ch software bob 推荐其用户install https www idiap ch software bob install它的包使用conda 但我不想用conda 我如何从源代码安装它
  • 如何使用基于单选按钮输入的jquery跳过隐藏输入字段的验证(删除必需属性)

    使用 bootstrap 有一个简单的形式 为了进行验证 我使用了 必需 的引导程序 效果很好 但在我的表单中 我根据单选按钮隐藏带有查询的输入字段 我的问题是提交表单需要隐藏的输入字段 我怎样才能跳过这个 我不想验证隐藏的输入 Error
  • GCC 编译器选项 -wno-four-char-constants 和 -wno-multichar

    找不到任何有关的文档 Wno four char constants 但是我怀疑它类似于 Wno multichar 我对么 它们是相关的 但不是同一件事 编译与 Wall pedantic标志 分配 int i abc 产生 警告 多字符