C++ gcc确保没有c++;ISM是否已编译?
我在过去遇到过一些例子:C++ gcc确保没有c++;ISM是否已编译?,c++,c,gcc,C++,C,Gcc,我在过去遇到过一些例子: 尝试使用bool类型 使用错误包括cstdio与stdio.h struct关键字有问题 我只想确定100%的源是C,没有C++。 GCC将自己确定它是C还是C++源代码。怎么用?它扫描您传递的文件的扩展名。 是否接受延期 如果您想强制使用特定语言,请使用-x标志(记录在上面的链接中)。此外,您可以检查宏\uuu cplusplus是否已定义。在编译.c文件时,默认情况下它不会这样做吗?您可以使用gcc-x c强制gcc将每个文件视为c,尽管这不是必需的。如果您有
- 尝试使用bool类型
- 使用错误包括cstdio与stdio.h
- struct关键字有问题
<>我只想确定100%的源是C,没有C++。 GCC将自己确定它是C还是C++源代码。怎么用?它扫描您传递的文件的扩展名。
是否接受延期
如果您想强制使用特定语言,请使用
-x
标志(记录在上面的链接中)。此外,您可以检查宏\uuu cplusplus
是否已定义。在编译.c
文件时,默认情况下它不会这样做吗?您可以使用gcc-x c
强制gcc将每个文件视为c,尽管这不是必需的。如果您有\include
,则键入bool
有效。除此之外,尝试添加一个C++构造,看看会发生什么。如果C++包含了一个C++头,我认为你不可能检查。我经常看到人们使用C++代码。在这种情况下,简单地扫描扩展不足以消除C或C++的歧义。不过,所使用的可执行文件是一个很好的提示(即gcc与g++)。@Chnossos是的,但无法编译头文件。然而,该报头将包含在C++或C源文件中。实际上,您可以将标题编译为“”。但无论如何,语言都需要匹配。