我有一些为 C99 程序编写的头文件。此标头包含所有函数定义,并且不与源文件配对。我将它包含在 C++ 文件中。
我的 C++ 编译器标志 include -pedantic -std=c++11
,它在头文件中给了我各种警告,例如“ISO C++ 禁止复合文字”和“ISO C++ 禁止可变长度数组”。显然,C++ 编译器将 C99 代码视为 C++。两个问题:
- 在尝试编写可以在使用不同编译器的各种平台上正确运行的代码时,这是一个潜在的问题吗?
- 解决警告并生成符合标准的代码的好方法是什么?我正在考虑使用 gcc 制作一个预编译的头文件,但对该过程知之甚少,无法确保我不会因为在 C++ 源代码中包含 C 预编译头文件而产生意外后果。
谢谢