gpt4 book ai didi

c - 原生 C 有共同的符号吗?

转载 作者:行者123 更新时间:2023-12-03 21:13:23 24 4
gpt4 key购买 nike

在 GCC10 中,gcc 默认为 fno-common .这意味着,所有暂定定义的符号都不常见。我认为 gcc 符合 C 规范,但在 native C 程序中似乎没有通用符号。通用符号是否仅用于扩展语法?

最佳答案

Does native C have common symbol?



阅读 C11 标准 n1570 . 它的索引甚至没有提到常见的符号。

另请仔细阅读 documentation of GCCthis draft报告。

或许你引用 ELF Linux 上用于 object files 的文件格式和 executables .在那里你可以找到常用符号的提及,这些符号往往会被弃用....阅读 Linux ABI 规范等 here .

我的建议是将所有公共(public)符号声明为 extern在某些头文件中( #include -d 在您的大多数 *.c 文件中),并在单个 translation unit 中定义一次(没有 extern ) .您可以使用简单的 preprocessor技巧(例如 X-macros )。

您可能对使用 C 代码生成器感兴趣,例如 lemonSWIG , 或开发您的脚本(使用 GNU awkGuilePythonGPP 等......)简单的 metaprogramming技术( autoconf 可能是鼓舞人心的)生成一些 C 代码。配置您的 build automation工具( GNU makeninja ...)。

您可能有兴趣使用 static analyzer optionsprecompiled headers最近的海湾合作委员会。另请查看 Clang static analyzerclang tidyFrama-C .

你肯定想通过 -Wall -Wextra -g -H to gcc并阅读 How to debug small programsModern C .

关于c - 原生 C 有共同的符号吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62208811/

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