2012-01-01 69 views
2

我回到了C語言編程中。我之前在linux中沒有做過任何事情,而我以前的編碼是在Borland 3.1的DOS下完成的 - 所以我有很多工作要做!由於它看起來很好,我正在玩'codelite'IDE。到目前爲止,只有麻煩,但我糊塗了。在這一點上我堅持看:我們如何確定用戶定義類型的「真實」類型?

{ 
    Display *display; 
    int x; 
    ... 

一個人如何確定哪種類型的「顯示器」是什麼?在古老的Borland中,將光標移到該類型上,然後按F1,它會告訴你:-)我想fprint「display」的值,但不知道要使用哪種格式說明符。

呵呵,以及任何人對於像我這樣的人可能有的一般性建議,剛剛從DOS下的C編碼跳到Linux將會受到熱烈的歡迎!

+0

這取決於您使用的是哪個IDE!如果你只是使用基本的文本編輯器,你只需要回溯頭文件中的定義。 – 2012-01-01 19:59:40

回答

3

我不知道codelite IDE - 如果它有這個選項,它會是最簡單的。
困難的方法是挖掘頭文件。
另一種方法是使用-E標誌編譯代碼,該標誌只打開包含和定義的標誌。在(非常大)輸出中,查找顯示並查看它是如何定義的。

+0

我建議'gcc -C -E',因爲這些註釋還有助於理解來自哪裏的線。 – 2012-01-01 20:04:24

+1

爲了清楚起見,你的意思是輸入一個像'gcc -C -E myfile.c | less',使用(與-C -E一起)所有其他通常用於編譯myfile.c的選項。好主意。 – 2012-01-01 20:07:05

+0

我嘗試了上面的CLI方法,但我仍然找不到typedef :( – 2012-01-02 02:46:15

3

如果使用gdb調試器(假設你gcc -Wall -g編譯,你總是應該),你也可以使用內部gdbptype Display命令。

而你使用Display讓我猜測你對圖形用戶界面感興趣(因爲DisplayXlib的東西)。然後,我強烈建議使用功能強大的GUI工具包庫,例如GTK3(在C中)或Qt4.8(在C++中)。不要直接使用Xlib;你會迷路的!

對於需要實際終端的控制檯應用,請考慮使用ncursesreadline庫。

你不需要在Linux下的IDE代碼(emacs + make + gdb + gcc + grep + etags是罰款)。使用gcc -Wall -g來編譯你的C代碼,並糾正它,直到你沒有更多的警告。即使在個人項目中,也可以使用版本控制系統,如git

利用Linux是免費軟件所以研究和改進你想要的所有源代碼。

當然,瞭解Linux kernel的作用,system calls的重要性。查看和syscalls(2)手冊頁(並學習使用man)。

不要忘記tty-s(即終端)的複雜性。

+0

或者至少使用xcb,它是一個現代替換對於xlib – liori 2012-01-01 20:09:30

+0

我不會推薦xcb作爲Linux初學者,我會推薦使用GTK或Qt,X11協議和相關規範(ICCCM等等)非常複雜 – 2012-01-01 20:17:33

+0

那麼,「至少」,如: 「即使你認爲你必須使用低級別的X11協議,至少也要使用現代化的庫」我也認爲GTK/Qt是更好的選擇 – liori 2012-01-02 02:11:32