这个问题可能很奇怪,我目前正在写一些旧代码(不是我写的)。我实际上不是C程序员,但我正在尝试理解这部分代码实际上应该做什么。幸运的是,奇怪的部分不会太长(配置的一部分):
int
main ()
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}如果它不是一个GNU编译器,那么"choke me"...what就是这个choke me的意思……我真的不明白。(在谷歌搜索时只发现了一些奇怪的东西-)
发布于 2020-09-04 10:36:06
它只是被认为是无效的C语言,并会触发语法错误,阻止文件编译。
想必程序员并不打算让代码与除GNU (gcc)之外的任何编译器一起工作,因此如果使用其他编译器,这将迫使构建失败。所选择的词没有特别的意义,除了“卡住我”的意思可能是“这是编译器不能‘吞下’的东西,它会杀死它”。
更现代的方法是使用#error。
发布于 2020-09-04 10:36:38
这是一个无效的语句,因此会导致错误。
https://stackoverflow.com/questions/63734039
复制相似问题