如何确保我的代码是ansi C,不涉及C++。像gcc这样的编译器可以设置遇到C++特性时提示错误吗?

问题描述 投票:0回答:1

我用C++编程了一段时间。 现在我想编写一个 ANSI C 程序,不希望代码中包含任何“仅限 C++”功能。 我正在使用安装了 gcc 的 cygwin 64 位。 是否有任何设置让 gcc 在遇到 C++ 特性时提示编译器错误?例如。

c++ c gcc
1个回答
7
投票

以下内容摘自gcc文档

最初的 ANSI C 标准 (X3.159-1989) 于 1989 年获得批准, 1990年发布。该标准被批准为ISO标准 (ISO/IEC 9899:1990) 1990 年晚些时候。没有技术差异 在这些出版物之间,尽管 ANSI 标准的各部分 被重新编号并成为 ISO 标准中的条款。这个标准, 其两种形式通常称为 C89,有时也称为 C90, 从批准之日起。 ANSI 标准,但不是 ISO 标准 标准,还附带一份基本原理文件。选择本标准 在 GCC 中,使用选项 -ansi、-std=c90 或 -std=iso9899:1990 之一; 要获得标准所需的所有诊断,您应该 还指定 -pedantic (或 -pedantic-errors 如果您希望它们是 错误而不是警告)。

因此,使用以下标志进行编译:

gcc myfile.c -ansi -pedantic-errors

请注意,-ansi 和 -std=c90 是同义词。有关选项的完整列表,请参阅控制 C 方言的选项

© www.soinside.com 2019 - 2024. All rights reserved.