發表文章

目前顯示的是 5月, 2008的文章

C與C++:展開前置處理的內容

gcc的-E選項可以將前處理(pre-processing)過後的程式碼印在螢幕上, 就是說所有的巨集與引入(include)都會被展開, 練習寫巨集的時候,可以用這個選項看到處理過後的結果, 或是發現一些程式碼的錯誤訊息所指出的位置與程式碼的行數不一樣, 也可以用來查看為何會有產生錯誤的訊息。 另外,配合管線的使用就能夠將資訊寫入到檔案中 EX:gcc -E main.c > main.pp gcc(1): GNU project C/C++ compiler - Linux man page

為什麼有些主程式(main)有三個參數?

為什麼有些main主程式會有三個變數在參數列上? 這個問題在書上有時會被提及,但是通常都不作說明,或要求你去查閱其他資料或使用手冊。在GNU C library第25章Program Basics中有詳細的說明,許多剛踏入Linux作程式的新手們都應該詳細閱讀此章的基礎知識。 其實 第三個參數就是系統環境變數 ,執行程式時由系統直接傳遞給程式,我們可以利用這個變數客制化我們的程式本身,得到多數程式放置的位置、常用的分隔符號、主系統檔案位置等等。在Linux系統上,有工具是依照這些環境變數來工作的,並依此變化出許多特殊的使用方法。 以下為 GNU C Library 25.1 的原文說明: 25.1 Program Arguments The system starts a C program by calling the function main. It is up to you to write a function named main—otherwise, you won't even be able to link your program without errors. In ISO C you can define main either to take no arguments, or to take two arguments that represent the command line arguments to the program, like this:  int main (int argc, char *argv[]) The command line arguments are the whitespace-separated tokens given in the shell command used to invoke the program; thus, in `cat foo bar', the arguments are `foo' and `bar'. The only way a program can look at its command line arguments is via the arguments of main. If main doesn

紀錄: VIM簡單操作

VIM有很多種模式,而且操作指令都是區分大小寫的,也就是說若指令為abc,則不能打成Abc、ABC、abC等,這點請牢記。 剛進入VIM是「一般模式」,只要一直按Esc,就會回到這個模式。 輸入冒號就代表你要輸入指令,會切換到「指令模式」 在VIM中開啟某檔案 :e 檔案名稱 輸入檔案名稱時,有tab自動完成的功能。記憶方法: E dit 離開VIM(會提醒存檔) :q 記憶方法: Q uit 強制離開VIM(不存檔) :q! 寫入檔案後離開VIM :wq 指令的順序很重要,若打成:qw就只是離開VIM。記憶方法: W rite 強指寫入檔案後離開VIM :wq! (到底有沒有這個這個指令我機會沒使用) 除了指令以外,還有一些操作 往後搜尋 /要搜尋 是緊接著,跟Linux的man搜尋功能一樣。 往前搜尋 ? 往前與往後搜尋都可以用n作直接搜尋,或是只輸入/或?繼續搜尋,或改變搜尋方向。 複製我一直記不太起來,因為是yy, 原本的意義 是 y ank(拔罐), 貼上則是p 刪除一行為dd 另外還有.是重作上一個指令 要編輯文字內容,則要進入「插入模式」,我是輸入i進入這個模式, 輸入數字時,不要用鍵盤右邊的數字鍵面( NUMPAD ),VIM只會把它當作其他的功能鍵。 延伸閱讀 Jserv's blog: vi / vim 圖解鍵盤指令 大家來學 Vim 一個歷久彌新的編輯器