我知道C预处理器作为编译器的一部分存在。但我正在寻找一个独立的计划。有没有这样的工具?是否有任何C预处理器作为独立程序?
4
A
回答
10
它通常被称为cpp
。例如,在我的Linux机器:
CPP(1) GNU CPP(1) NAME cpp - The C Preprocessor SYNOPSIS cpp [-Dmacro[=defn]...] [-Umacro] [-Idir...] [-iquotedir...] [-Wwarn...] [-M|-MM] [-MG] [-MF filename] [-MP] [-MQ target...] [-MT target...] [-P] [-fno-working-directory] [-x language] [-std=standard] infile outfile
这种特殊的一个是gcc
一部分,可用于多种平台。
1
cpp
只是其中之一。编译时这是一个分开的程序,由gcc
调用。
1
它是包的一部分,通常称为cpp
(C预处理器)。
which cpp
# /usr/bin/cpp
man cpp
2
mcpp。
在首页:
MCPP是C/C++预处理器,具有以下特点。
- 实现所有的C90,C99和C++ 98规范。
- 提供验证套件以全面测试C/C++预处理器的一致性和质量。当应用这个验证套件时,mcpp在许多现有的预处理器中区分它自己。
- 具有丰富的目标诊断功能,可以检查所有预处理问题,例如源代码中的潜在错误或缺乏可移植性。
- 有#pragma指令输出调试信息。
- 可移植并已移植到类UNIX系统和Windows上的许多编译器系统,包括GCC和Visual C++。
- 有各种行为模式。
- 可以编译为特定于编译器的预处理器来替换特定编译器系统的驻留预处理器,也可以编译为独立于编译器的命令,甚至可以作为从其他主程序调用的子例程。
- 提供日语和英语的综合文件。
- 是一款开源软件,采用BSD-style-license。
3
你也可以看看m4
什么是M4?
M4可以称为“模板语言”,“宏语言”或“预处理器语言”。名称“m4”也指以这种语言处理文本的程序:这个“预处理器”或“宏处理器”将输入m4模板作为输入,并将其发送到输出,然后在任何嵌入的指令(称为宏)上进行操作。
2
我已经使用filepp预处理除直C以外的文件。它是一个Perl模块,因此它非常便于携带。这很方便,你可以使用所有熟悉的习惯用法,并添加一些有用的功能。
从网站:
为什么filepp,而不是普通的旧CPP?
cpp是专门为 生成C编译器的输出。 是的,你可以使用任何类型的文件与 它,但它产生的输出包括 负载的空行和 风格的线条:
#1“file.c”
显然,这些线非常有用的 到C编译器,但没有用在说 的HTML文件。另外,由于使用Perl编写的filepp是 ,所以它是8位清理的,并且 适用于任何字符集,而不是 只是ASCII字符。 filepp也是 可定制,并希望更多的用户 比cpp友好。
相关问题
- 1. 是否有任何独立的C#/ .NET调试器?
- 2. c#中是否有任何一种“时间处理程序”?
- 3. 是否有任何UI处理程序为黑莓操作系统6.0
- 4. 是否有预处理器“AND”指令
- 5. 独立多/处理程序reverse_tcp
- 6. 是否有任何预处理技术用于删除“孤立”点的群集?
- 7. C预处理器中是否有部分宏应用程序/ currying可能?
- 8. 是否有比Pro * C/C++更智能的Oracle预处理器?
- 9. C++预处理程序
- 10. C预处理程序库
- 11. x64程序集编程独立64位处理器
- 12. MongoDB是否有任何Zend会话处理程序库?
- 13. 检查一个RoutedEvent是否有任何处理程序
- 14. C++预处理器如何工作?
- 15. C++:Boost cpp_dec_float是否独立?
- 16. fortran中是否有类似C中的预处理器指令?
- 17. SASS是否有类似C预处理器的问题?
- 18. 是否有可以为C#MessageBox生成代码的插件或独立程序?
- 19. 是否有任何库为C/C++守护程序提供管理CLI?
- 20. 任何让c预处理器忽略所有#include的方法?
- 21. C++预处理器
- 22. Java独立代理程序
- 23. 是否有用于Windows 7的预览处理程序VCL?
- 24. C编程:预处理器,宏作为标记
- 25. 预处理程序指令没有任何效果
- 26. C++独立应用程序
- 27. 什么是独立应用程序或独立服务器?
- 28. 是否有任何控制循环展开的预处理器指令?
- 29. 是否有预处理器选项在头文件被预处理时显示?
- 30. 应用程序独立肥皂消息处理程序
请注意,大多数编译器(如GCC)都有一个类似-P开关的东西,它省略了预处理器输出中的linemarkers生成。 – Wiz 2014-01-04 08:32:18