這篇是給新手看的。 如果你在 Windows 習慣使用 Visual C++ 或 Dev-C++ 的話,到了 Mac OS X 可能會突然不知道要怎麼寫程式,尤其當你已經用 Visual C++ 的 Debugger 用得很上手的話。 最近我們系上的課充滿了 C programming,我也稍微摸懂了 Xcode 的若干功能,至少我可以拿它來寫 C 語言的程式了,就像在 Windows 使用 Visual C++ 那樣。 如果這篇只是要教你怎麼按 Compile 的話,那我就是來騙文章數的了,因此這篇的內容還包括 怎麼使用 Xcode 的 Debugger 。 安裝 XcodeXcode 是在 OS X 上面寫 C 語言程式最簡單的方式。首先是去 Mac App Store 下載安裝 Xcode ,網址: https://itunes.apple.com/tw/app/xcode/id497799835?mt=12 。這不用錢,只是要裝很久。安裝完成後,可以在 Launch Pad 裡面找到 Xcode ,按一下開啟。如果找不到的話,可以在 Spotlight (螢幕右上角的放大鏡)裡面搜尋 "Xcode" ,也可以找到。 第一次打開 Xcode 你會看到 Welcome to Xcode 的畫面,做為第一次嘗試,請先按下Create a new Xcode Project 。 Welcome to Xcode 這個畫面若以後不想看到,可以取消勾選 Show this window when Xcode launches 來永久關閉,往後若要打開新專案,可以按下功能表的 File → New → Project ... 。 新增 C 語言專案剛剛說按下 「Create a new Xcode Project」,接著會跳出一個視窗,問你要開什麼專案。對於一般 C 程式作業來說,它被歸類在 OS X 的命令列工具裡面,所以,在左側選 OS X 裡面的 Application ,然後在右邊選 Command Line Tool 。 接著會要你輸入專案名稱,Organization Name 寫你的名字就行, Company Identifier 我不知道是做什麼的(我不是專門寫 OS X 軟體的),但並不會影響接下來的操作,所以像我這樣填一個看起來像樣的(?)就行。最下面的 Type 可以選 C 或 C++ ,還有其他 Objective-C-based Frameworks,這裡我直接選 C 。 最後按下 Next ,會要你找一個地方放這個專案,你就找個地方放就行了。 認識 Xcode IDEXcode IDE 的界面一打開跟 Visual Studio 、 Dev-C++ 都不一樣,從 Windows 來的人可能會不太習慣,不過不要緊,只要認識幾個東西就好了。 但在開始認識之前,請先到 Xcode → Preferences... 裡面的 Behaviors ,選 Running → Starts ,把 Show debugger 打開,並且把 Debug Area 打開,在 View → Debug Area → Show Debug Area 。這個預設沒開,但接下來會用到,非常重要,所以先打開。 接下來來認識一下 Xcode Project 視窗的基本配置: 請先認識: - 「執行」按鈕 (Run) ,長得像音樂軟體的 Play ,按下去就是執行程式
- 「停止」按鈕 (Stop) ,長得像音樂軟體的 Stop ,在程式執行的時候可以強制停止
- 「狀態列」 ,在最上方,會出現的狀態像是編譯或執行的成功與否
- 「左側欄」 ,現在是顯示檔案列表(有其他列表可以切換)
- 「主要工作區」 ,現在裡面是看不懂的東西,等下會切換到程式碼編輯
- 「除錯區」 ,讓你方便對程式碼除錯,我會特別講這一個區域。
第一次執行程式寫程式除了撰寫程式碼本身,最重要的就是要跑程式來看結果。剛剛介紹了「執行」按鈕,看起來可以按它來執行程式,那麼就按按看吧。按下去之後,你會看到狀態列的訊息有所改變,提示 Building 、 Build Success 、Running 等等,最後,你會在 Debug Area 的右邊看到這個: 嗯,程式可以執行,可以看到輸出了。 第一次修改程式但是到現在還沒看到程式碼,剛剛說了左側欄是切換到「檔案列表」,也就是說檔案藏在裡面,請找一下 main.c ,按一下可以打開,主要工作區會變成程式碼: 這個程式碼你應該很熟悉,就是普通的 C 語言 Hello World 而已。 自動完成接下來請試試看修改程式。假如我想要改成印出 10 次 Hello World 的內容,想必你會在 // insert code here 這邊加 for loop: int i;for (i = 0; i < 10; i++) { printf("Hello, World\n");}
你打到一半的時候應該會出現這樣子的東西: 這個功能叫做 「自動完成」 (Auto Complete) ,是 Xcode 好用的功能之一,如果你從 Visual Studio 過來應該不陌生,就是打到一半,Xcode 會自動提示你可以寫什麼程式碼,並且按下 Tab 就可以自動跳到圓框來打字。你可以試試看,按 Tab 來切換,然後按 Enter 來確認。 自動完成其實無所不在,除了可以自動展開 Syntax 之外,還可以展開變數名稱、function 名稱(統稱 identifiers)、提示有哪些 .h 檔可以 include 、提示 struct 的結構。展開 identifers 的例子像是,你想要用 fputs ,打 fp ,它會自動出現所有 fp 開頭的函式(因為有 include stdio.h ,所以抓得到),按鍵盤的上下鍵可以選擇,除此之外,還會在右側欄出現簡單的說明。 如果你按 More 的話,還會出現完整的說明檔,這樣子就不需要上網查文件了。 再提一個秘訣,想要手動 trigger 自動完成的話,可以按 Esc 。例如我先宣告了 var1, var2, var3 ,想要對其中一個指定某值,打到一半只有 var 就跑到別行,再回來的話,可以在 var 的後方按 Esc ,就會跳出自動完成: 附帶一提,大小寫隨便打,它也認得出來。 你可以隨便試,你應該會感受到「他好像很聰明的樣子」。 自動錯誤提示我改好了,結果 oops ,好像忘記什麼東西? 老師有教過變數要宣告齁! 程式寫錯,不用到編譯才知道, Xcode 會一直自動編譯,檢查你程式碼是否可以編譯通過,並且自動 標示錯誤 ,如果你按下行號旁邊的紅色驚嘆號,它會告訴你錯在哪: 對,忘記宣告了,補起來之後,這個錯誤訊息就會消失了。 錯誤訊息除了程式寫錯無法編譯之外,還會有編譯器來的警告,例如有個變數宣告了但沒使用: 如何,很方便吧? 執行程式與輸入資料現在再來 Run 一遍,這次不要動滑鼠了,請按鍵盤上的 Command + R ,一樣會跑「執行」:
|