c - 仅对任意文件进行预处理器?

标签 c gcc clang c-preprocessor

我想证明预处理器完全独立于构建过程。它是不同于 C 语言的另一种文法和词法分析器。事实上,我想证明预处理器可以应用于任何类型的文件。

所以我有这个任意文件:

#define FOO    
#ifdef FOO    
I am foo    
#endif    
#
#
#    
Something    
#pragma Hello World

我认为这行得通:

$ gcc -E test.txt -o-
gcc: warning: test.txt: linker input file unused because linking not done

不幸的是,它只适用于此:

$ cat test.txt | gcc -E -

为什么 GCC 会出现这个错误?

最佳答案

你需要告诉gcc这是一个C文件。

gcc -xc -E test.txt

关于c - 仅对任意文件进行预处理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57254500/

相关文章:

Mac 上的 C : trying to use 'open' does not actually open the url

c - C中的typedef结构问题

c - 用c逐行写入文件

c++ - 在带有排除 C++ 的 switch 案例中使用范围

c++ - 使用 Clang 获取函数定义

gcc - GCC/Clang 的 -framework 选项在 Linux 上工作吗?

c - 数组、指针和字符串操作

c++ - 用于初始化 std::vector<std::function<bool(std::string)>> 的初始化列表在 g++ 4.9.0 中给出错误,但在 Visual Studio 2013 中编译良好

Xcode/GCC 链接问题 : file is not of required architecture

gcc - 如何设置 ASAN/UBSAN 报告输出