为什么 gcc 不编译未初始化的全局 const?

2023-12-21

当我尝试使用 g++ 编译以下内容时:

const int zero;

int main()
{
  return 0;
}

我收到一个关于uninitialized const 'zero'。我认为全局变量默认初始化为 0 [1] ?为什么这里的情况不是这样呢?
VS 编译得很好。

[1] 例如,参见https://stackoverflow.com/a/10927293/331785 https://stackoverflow.com/a/10927293/331785


我的 gcc 稍微详细一些:

$ g++ zeroconst.c
zeroconst.c:1:11: error: uninitialized const ‘zero’ [-fpermissive]

我们看到-fpermissive选项将允许编译。

请参阅此问题未初始化常量 https://stackoverflow.com/questions/8092670/uninitialized-const对 C++ 标准的参考(问题是 C++ 特定的)。

正如引用于GCC wiki http://gcc.gnu.org/wiki/VerboseDiagnostics#error:_uninitialized_const_.27d.27_.5B-fpermissive.5D.2C_note:_.27const_class_D.27_has_no_user-provided_default_constructor:

根据 C++ 标准的规定(C++03 中的 8.5 [decl.init],第 9 段, C++0x 中的第 6 段),G++ 不允许 const 限定类型的对象 除非该类型具有用户声明的默认值,否则默认初始化 构造函数。无法编译的代码可以通过提供来修复 初始化程序...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 gcc 不编译未初始化的全局 const? 的相关文章

  • 使用 AVX 内在函数代替 SSE 并不能提高速度 - 为什么?

    我已经使用 Intel 的 SSE 内在函数相当长一段时间了 并取得了良好的性能提升 因此 我希望 AVX 内在函数能够进一步加速我的程序 不幸的是 直到现在情况并非如此 可能我犯了一个愚蠢的错误 所以如果有人能帮助我 我将非常感激 我使用
  • 用更有意义的文本替换 GCC 输出中的 a-hats [重复]

    这个问题在这里已经有答案了 可能的重复 为什么 gcc 的所有错误消息中都有 https stackoverflow com questions 547071 why does gcc have a in all its error mes
  • c - 将 .data 发送到不同的部分

    我想把其中的符号 data为特定 C 文件生成的节并将它们放在不同的节中 例如 mydata 在最终的可执行文件中 例如 normaldata c char my str this should appear in data special
  • 为什么 -march=native 很少使用?

    对于大多数 C C 编译器 有一个可传递给编译器的标志 march native 它告诉编译器调整为主机 CPU 的微架构和 ISA 扩展生成的代码 即使它的名称不同 基于 LLVM 的编译器通常也有一个等效的选项 例如rustc or s
  • `printf()` 中格式说明符“%qd”的用途是什么?

    我看到格式说明符 qd浏览时github https github com Microsoft clang blob master test Sema format strings c代码 然后我检查了 GCC 编译器 它工作正常 incl
  • 使用 OpenMP 编译会导致内存泄漏

    根据 valgrind 的说法 使用 OpenMP 编译简单的 hello world 程序时可能会导致内存泄漏 这是没有意义的 因为 hello world 程序并没有有意使用任何 OpenMP 功能 假设下面的程序名为hi c并根据 g
  • 分析 ELF 部分和符号大小的工具

    我需要一种方法来分析 ARM 的 GCC 编译器的输出文件 我正在为裸机进行编译 并且我非常关心大小 我可以用arm none eabi objdump由交叉编译器提供 但如果存在用于此任务的工具 则解析输出并不是我渴望做的事情 您知道存在
  • sfinae 与 decltype:clang 或 gcc 中的错误?

    Clang 3 2 可以编译并且代码的行为符合预期 struct have f int f int i return 10 struct empty template
  • 'goto *foo' 其中 foo 不是指针。这是什么?

    我正在玩标签作为值 https gcc gnu org onlinedocs gcc Labels as Values html并最终得到这段代码 int foo 0 goto foo 我的 C C 经验告诉我 foo means dere
  • 为什么 GCC 交叉编译不构建“crti.o”?

    在尝试为arm构建gcc 4 x x交叉编译器时 我陷入了缺失的困境crti o文件在 BUILD DIR gcc子目录 An strace在顶层Makefile表明编译后的xgcc正在调用交联器ld with crti o 作为一个论点
  • 无法执行'x86_64-conda_cos6-linux-gnu-gcc':没有这样的文件或目录(pysam安装)

    我正在尝试安装 pysam 执行后 python path to pysam master setup py build 这个错误的产生是 unable to execute x86 64 conda cos6 linux gnu gcc
  • 这个反斜杠在这段汇编代码中起什么作用?

    我不确定这些推线有什么区别 修剪下来来自 Linux 的 x86 entry calling h https github com torvalds linux blob 241e39004581475b2802cd63c111fec43b
  • 全局变量 V.S. C++ 中的文件变量

    C 中的全局变量和文件变量有什么区别 Thanks 在 C 和 C 中 您可以通过在声明前面使用 static 关键字来使全局变量只能从声明它的文件中访问 不使用 static 关键字的全局变量可以从编译到程序中的任何 C 或 C 文件访问
  • 是否有相当于 Clang/LLVM 的 .spec 文件,在哪里可以找到参考?

    The gcc驱动程序可以配置为使用特定的链接器 特定的选项和其他细节 例如覆盖系统头 specs files 当前 截至撰写本文时 GCC 版本 4 9 0 的手册此处描述了规范文件 https gcc gnu org onlinedoc
  • 编译器如何实现位域运算?

    当询问如何做的问题时包裹 N 位有符号减法 https stackoverflow com questions 8309538 integer subtraction with wrap around for n bits我得到了以下答案
  • R 错误:无法更改锁定绑定的值

    我试图估计无限数字流的平均值和标准差 当我运行代码时 出现错误消息 无法更改锁定绑定的值 我做了一些研究 发现这个错误与我使用全局变量有关 但我无法弄清楚 任何帮助将非常感激 在此先感谢您的帮助 define global variable
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • Pyaudio 安装错误 - “命令‘gcc’失败,退出状态 1”

    我正在运行 Ubuntu 11 04 Python 2 7 1 并想安装 Pyaudio 于是我跑了 sudo easy install pyaudio 在终端中 进程退出并显示以下错误消息 Searching for pyaudio Re
  • 在GCC中添加父目录的包含路径

    我想将父目录中的文件包含在我正在处理的项目中 所有的头文件都在父目录中 有没有办法在命令行上使用 I 来搜索父目录中的包含而不使用绝对路径 我知道我可以使用 makefile 解决这些问题 并且我可能最终会这样做 但我想知道是否有一个可以使
  • 无法链接 Boost 正则表达式

    我目前正在尝试编译一个KIT 的收缩层次实现 http algo2 iti kit edu english routeplanning php这需要 Boost Regex 提供的 Makefile 已经确保 并且我还手动仔细检查了这一点

随机推荐

  • 如何压缩两个以上的迭代器?

    有没有更直接 更易读的方法来完成以下任务 fn main let a 1 2 3 let b 4 5 6 let c 7 8 9 let iter a iter zip b iter zip c iter map x y z x y z 也
  • 是否可以将自动引用计数 (ARC) 引入到 C++ 中?

    Objective C 引入了一种称为 ARC 的技术 将开发人员从内存管理的负担中解放出来 听起来不错 我想如果 g 也有这个功能的话 C 开发者会很高兴 ARC 允许您将内存管理的负担交给 Apple LLVM 3 0 编译器 并且再也
  • Android应用程序中正方形图像的裁剪形状

    我想创建一个应用程序 允许用户调整正方形图像的大小 长度 宽度 我知道可以使用画廊以这种方式做到这一点 private void crop Uri photoUri Intent intent new Intent com android
  • #include <图形.h>

    我如何使用 include
  • 每次选择框更改时使用ajax发送http请求

    您好 我正在使用 jquery 从 mysql 获取数据 它工作得很好 但我需要它在另一个选择框更改时更新选择框 这是我对 jquery 的了解 airports live change function var selectVal air
  • 使用 jQuery 的 Twitter feed

    我正在尝试使用 jQuery 解析 twitter 提供的 JSON 文件来制作一个显示 5 条推文的 twitter feed 我做了jsFiddle在这里 http jsfiddle net MichaelvandeWeerd 3Ubc
  • 使用 PCA 时出现数学域错误

    我正在使用 python 的 scikit learn 包来实现 PCA 我正在学习数学 domain error C Users Akshenndra Anaconda2 lib site packages sklearn decompo
  • 如何在 Bash 脚本中静默输出?

    我有一个输出到标准输出的程序 并且希望在通过管道传输到文件时使 Bash 脚本中的输出静音 例如 运行程序将输出 myprogram WELCOME TO MY PROGRAM Done 我希望以下脚本不向终端输出任何内容 bin bash
  • 在对话框中为列表视图设置适配器时出现 NullpointerException

    我想显示一个自定义对话框 其中有一个列表视图 首先看一下我下面的代码 Dialog protected void onPostExecute String file url btnInvite setOnClickListener new
  • 在 Unity 中运行时将带有文本的按钮动态添加到 UI [重复]

    这个问题在这里已经有答案了 我正在与C an Unity 5 6 1f1 我做了一个机制 在 UI 按钮上单击应该向 UI 上已有的面板添加一个带有文本的附加按钮 并且它确实有效 因为我能够看到对象出现在那里 public void Mak
  • 将 Outlook 电子邮件作为 .msg 文件保存到我的内部驱动器

    我正在尝试将 Outlook 电子邮件保存到我的 H Drive 中 我希望它作为运行脚本规则 但我无法让它工作 不涉及任何附件 我需要的只是将其保存为 msg 文件 如果您找到解决此问题的不同方法 请 lmk Thanks Sub Ext
  • Laravel 5:AppServiceProvider 与自定义提供程序

    几天前 我开始学习 Laravel 我无法理解一种机制 有 AppServiceProvider 我可以在其中注册 绑定 我的自定义类 接口等 但是在许多教程中 当作者创建自定义类来注册它们时 它们也会创建自定义服务提供程序类 而不是在 A
  • 如何将 HttpServletRequest 转换为字符串?

    我怎样才能转换HttpServletRequest to String 我需要解组HttpServletRequest但是当我尝试这样做时 我的程序会抛出异常 javax xml bind UnmarshalException with l
  • ViewPager + GridView onItemClick

    我在 ViewPager 的布局中有一个 GridView 我不确定这是否有影响 inside SampleAdapter for ViewPager Override public Object instantiateItem ViewG
  • (Ruby,Rails) CRUD 嵌套模型在单个页面上深度超过 4 层...?

    尽管有很多令人惊奇的信息 但它似乎常常达不到我疯狂的要求 也就是说 我正在寻找一种机制来处理单个页面上的多个嵌套模型 现在 我已经看过所有关于嵌套两个模型 Railscasts 等 的视频和帖子 不是真的 而是幽默一下 然而 我需要处理嵌套
  • 从中心点缩放向量?

    我试图弄清楚我是否有可以构成正方形的点 假设我知道这个广场的中心 我想要一个公式 可以使其大小例如两倍 但从中心开始 因此 新形状的大小是多边形中心的两倍 它必须适用于任何形状 而不仅仅是正方形 我更多地寻找其背后的理论而不是实现 如果你知
  • 正在向本地邮件服务器发送邮件 - “SENT: 550 地址无效。”

    我正在尝试将邮件发送到我的本地邮件服务器 我在用hMail服务器作为邮件服务器 我已将其配置为此处提到的 在 XAMPP 上设置本地邮件 SMTP POP3 IMAP 服务器 http thephpcode blogspot com 200
  • 将示例用法(markdown?)添加到 JavaDocs

    假设我有这个 有没有办法向每个方法添加 markdown 或 html 并提供如何使用该方法的示例 我正在考虑一个扩展面板 按钮显示 查看示例 它会打开一个面板 我尝试将其添加到内联文档中 pre code new BeanTranslat
  • 使用 RSS feed XML 并显示信息

    我必须在 Windows Phone 7 应用程序中使用 feed XML RSS 并将这些信息显示在ListBox 我尝试按照以下方式读取 XML feed 中的内容 private void button1 Click object s
  • 为什么 gcc 不编译未初始化的全局 const?

    当我尝试使用 g 编译以下内容时 const int zero int main return 0 我收到一个关于uninitialized const zero 我认为全局变量默认初始化为 0 1 为什么这里的情况不是这样呢 VS 编译得