我知道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. 獨立多/處理程序reverse_tcp
- 2. 是否有任何預處理技術用於刪除「孤立」點的羣集?
- 3. C++預處理程序
- 4. 是否有比Pro * C/C++更智能的Oracle預處理器?
- 5. C++預處理器如何工作?
- 6. 檢查一個RoutedEvent是否有任何處理程序
- 7. SASS是否有類似C預處理器的問題?
- 8. 任何讓c預處理器忽略所有#include的方法?
- 9. C++預處理器
- 10. Java獨立代理程序
- 11. 是否有用於Windows 7的預覽處理程序VCL?
- 12. C編程:預處理器,宏作爲標記
- 13. C++獨立應用程序
- 14. 什麼是獨立應用程序或獨立服務器?
- 15. ASP.NET MVC - Captcha作爲獨立程序集
- 16. 如果事件處理程序處於獨立程序集中,是否停止垃圾回收?
- 17. 是否有用於C或C++的任何跨平臺gzip處理器庫?
- 18. 是否有任何獨立的EJB容器放入非j2ee Web服務器?
- 19. Clang是否允許預處理器==?
- 20. MPI是否提供預處理器宏?
- 21. 獨立作業的多核處理
- 22. C預處理器更換工作不
- 23. C預處理器操作員##
- 24. 如何從Android中的獨立類調用處理程序?
- 25. 從獨立程序創建共享庫 - 如何處理「int main()」?
- 26. Python中是否有任何獨立的pgp實現?
- 27. 是否有任何獨立的HTML標記驗證工具
- 28. 標準C預處理器和Objective-C預處理器之間是否存在差異?
- 29. C預處理程序#if表達式
- 30. 作爲計時器的處理程序
請注意,大多數編譯器(如GCC)都有一個類似-P開關的東西,它省略了預處理器輸出中的linemarkers生成。 – Wiz 2014-01-04 08:32:18