这个问题可能很奇怪,我目前正在研究一些旧代码(不是我写的)。我实际上不是 C 程序员,但我想了解这部分代码实际上应该做什么。幸运的是,奇怪的部分并不太长(配置的一部分):
int
main ()
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
如果它不是 GNU 编译器那么“choke me”
...这个choke me
应该是什么意思...我真的不明白. (并且在谷歌搜索时只发现奇怪的东西让我窒息 -.-)
最佳答案
它只是应该是一些无效的 C 并且会触发语法错误,阻止文件编译。
大概程序员不打算让代码与 GNU C (gcc) 以外的任何编译器一起工作,因此如果使用任何其他编译器,这将强制构建失败。所选择的词没有特别的意义,除了“让我窒息”的意思可能是“这是编译器无法‘吞下’的东西,它会杀死它。”
更现代的方法是使用 #error
.
关于c - #ifndef __GNUC__ 让我窒息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63734039/