- 如果有,下面稱爲什麼(明顯被GCC忽略)註釋?
- 我該如何擺脫它們?
這裏:C預處理器添加自己的註釋
[email protected]:~/GCC$ cpp < /dev/null
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "<stdin>"
[email protected]:~/GCC$
這裏:C預處理器添加自己的註釋
[email protected]:~/GCC$ cpp < /dev/null
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "<stdin>"
[email protected]:~/GCC$
他們被稱爲linemarkers,你可以使用-P
有cpp
或gcc
忽略它們。
它們在cpp
手冊的Preprocessor Output部分進行了描述。
我同意user30997,你可能不想擺脫他們。它們被gcc
忽略,因爲它們不影響編譯過程,但是當代碼編譯不正確時,它們確實提供了有用的診斷信息。
你可能不想擺脫他們。它們由預處理器插入,以便任何讀取此編譯單元的編譯器都可以確定源文件和產生它所檢查的任何行的行號。沒有它,你不能得到有意義的錯誤,如「main.cpp第7行的語法錯誤:預期分號」。管他呢。
如果你真的想拋棄它們,你總是可以寫一些快速的東西來殺死任何以「#」開頭的東西。
對於某些用途,您別無選擇,因爲除C以外的某些語言無法識別它們。 OTOH關於這是否是一個好主意的辯論是另外一回事。 – BCS 2011-02-03 03:18:30