【发布时间】:2014-01-02 21:14:36
【问题描述】:
是否可以告诉 GCC 编译源代码,并忽略 __FILE__、__LINE__ 等宏,或者重新定义它们以扩展为比方说 - 一个空字符串?
【问题讨论】:
-
真是个坏主意,你为什么要这样?很多代码(包括系统头文件)将依赖这些来做正确的事情。这只是在找麻烦。
-
您为什么要这样做?因为:1. C 标准禁止重新定义/取消定义它们 2. 用
0或-1替换__LINE__看起来很尴尬(这是一个整数值,你必须给出一些东西,不像__FILE__的空字符串) 3 .它们的主要目的是帮助调试(如果你不想要它们,为什么要首先使用它们?)。因此,如果您不想要它们或更好地保留它们,似乎唯一的方法是重新编写您的代码!
标签: c gcc compilation c-preprocessor flags