gpt4 book ai didi

c - ".global"的宏定义

转载 作者:行者123 更新时间:2023-11-30 17:11:12 25 4
gpt4 key购买 nike

我有一个使用“.global”汇编语言代码的“c”程序。我的编译器不允许这样做,我需要忽略它,我尝试了以下操作:

#define .global //global

但这会产生编译器错误。我还可以使用其他选项吗?编译错误为:

“需要一个标识符”

最佳答案

您几乎肯定最终会编写自己的预处理脚本;如果您的源文件得到合理控制,这应该不会太困难。例如,如果您不在字符串文字或注释中使用 .global 构造,则执行以下操作就足够了:

sed  's/.global [_[:alpha:]][_[:alnum:]]*;//g'

(也许更多地关注空白的细节)。

<小时/>

您不能用宏创建注释。 (您也不能定义名称以 . 开头的宏,尽管我认为可能有一个编译器接受它作为扩展名。)

在翻译过程的第 3 阶段,注释被替换为空格。直到第 4 阶段才检查预处理器指令,此时所有注释都已消失。

所以两者没有区别

#define COMMENT //comment
#define COMMENT
<小时/>

标准引用:§5.1.1.2/1:

  • 源文件被分解为预处理标记7) 和空白字符序列(包括注释)。源文件不应以部分预处理标记或部分注释结尾。每条评论都被一个空格字符替换。...

  • 执行预处理指令,扩展宏调用,并执行 _Pragma 一元运算符表达式。...

  • 关于c - ".global"的宏定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32472949/

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