2013-10-03 18 views
3

我回顧了頭老程序和代碼後,包括部分我有以下幾點:我已經老了C程序,在那裏我可以看到聲明

extern FILE *yyin, *yyout; 

TW_LOG_PROC_ERROR; 
TW_TRAN_ACC; 
TW_TVAL; 

EXTERN我知道,但下面是什麼,我無法找到。我相信存在全局變量,但我不知道它是否屬實,以及在哪裏可以找到它們。請指教。

+0

嘗試使用[ack](http://www.beyondgrep.com)。它將有助於在源代碼樹中快速找到東西。 – Nikhil

+0

@Nikhil wey!另一個用戶:)這是一個偉大的工具。 – DaV

回答

0

如果在整個項目運行ctags -R .,你應該能夠找到的所有項目的申報。您可以在生成的tags文件中輕鬆找到每個聲明的文件和行號。有很多插件和程序可以處理ctags併爲你製作它們。

編輯:

或只是運行:

grep "TW_LOG_PROC_ERROR" -r . 
grep "TW_TRAN_ACC" -r . 
grep "TW_TVAL" -r . 
+1

否則,'grep'它。 – Kamiccolo

4

這些可能是某種宏或舊"implicit int rule"這裏沒有指定類型的對象被認爲是int的。

輸入K & R C和C++的準標準的方言,可變聲明 沒有明確的類型名稱被假定爲int類型的。

但是,它們是用大寫字母寫的,這表明它們是宏。

+1

+1對於40歲以下的人知道「隱式詮釋規則」。 – chux

+0

@chux,隱式int規則在當今的編譯器中導致編譯時警告。由於我使用'-Wall -Wextra -Werror -pedantic'進行編譯,我不喜歡何時人們沒有刪除隱式聲明。 – cyphar

相關問題