新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > linux基礎復習(3)linux下C編程Part2

        linux基礎復習(3)linux下C編程Part2

        作者: 時間:2016-10-08 來源:網絡 收藏

        前面的 part1 講了一個流程,這篇補上一些編譯器相關細節,其實我個人認為,基本上能應付自己當前的項目就行了,一些具體的參數不用馬上花時間去背。以后用多了自然記得,可能是我記性比較差的原因~~

        本文引用地址:http://www.104case.com/article/201610/305803.htm

        Vi:

        Vi 有3 種模式,分別為命令行模式、插入模式及命令行模式各模式的功能,

        下面具體進行介紹。

        (1)命令行模式

        用戶在用Vi 編輯文件時,最初進入的為一般模式。在該模式中可以通過上下移動光標進行“刪除字符”或“整行刪除”等操作,也可以進行“復制”、“粘貼”等操作,但無法編輯文字。

        (2)插入模式

        只有在該模式下,用戶才能進行文字編輯輸入,用戶課按[ESC]鍵回到命令行模式。(在命令行模式按下 i 鍵進入,注意左下腳的變化)

        (3)底行模式

        在該模式下,光標位于屏幕的底行。用戶可以進行文件保存或退出操作,也可以設置編輯環境,如尋找字符串、列出行號等。

        vi 命令行模式功能鍵

        目 錄 目 錄 內 容

        I 切換到插入模式,此時光標當于開始輸入文件處

        A 切換到插入模式,并從目前光標所在位置的下一個位置開始輸入文字

        O 切換到插入模式,且從行首開始插入新的一行

        [ctrl]+[b] 屏幕往“后”翻動一頁

        [ctrl]+[f] 屏幕往“前”翻動一頁

        [ctrl]+[u] 屏幕往“后”翻動半頁

        [ctrl]+[d] 屏幕往“前”翻動半頁

        0(數字0) 光標移到本行的開頭

        G 光標移動到文章的最后

        nG 光標移動到第n行

        $ 移動到光標所在行的“行尾”

        n 光標向下移動n行

        /name 在光標之后查找一個名為name的字符串

        ?name 在光標之前查找一個名為name的字符串

        X 刪除光標所在位置的“后面”一個字符

        dd 刪除光標所在行

        ndd 從光標所在行開始向下刪除n行

        yy 復制光標所在行

        nyy 復制光標所在行開始的向下n行

        p 將緩沖區內的字符粘貼到光標所在位置(與yy搭配)

        U 恢復前一個動作

        Vi底行模式功能鍵

        目 錄 目 錄 內 容

        :w 將編輯的文件保存到磁盤中

        :q 退出Vi(系統對做過修改的文件會給出提示)

        :q! 強制退出Vi(對修改過的文件不作保存)

        :wq 存盤后退出

        :w [filename] 另存一個命為filename的文件

        :set nu 顯示行號,設定之后,會在每一行的前面顯示對應行號

        :set nonu 取消行號顯示

        貼了這么多,我承認他很強大,但是有些用得少的還是很難記住,鄙視我吧另外還有一個Emacs,坦白說我沒用過~~~時間關系暫時也不去研究了

        GCC:

        Gcc編譯流程解析

        如本章開頭提到的,Gcc的編譯流程分為了4個步驟,分別為:

        · 預處理(Pre-Processing);

        · 編譯(Compiling);

        · 匯編(Assembling);

        · 鏈接(Linking)。

        #includestdio.h>
        int main()
        {
        printf(Hello!n);
        return 0;
        }

        hello.c

        #include

        int main()

        {

        printf(Hello!n);

        return 0;

        }

        *補充一個小問題,為什么 main 函數前面要用 int ,用 void 在 dev-c++ 會得到一個warning ,很奇怪,知道的說下。當然,這是windows 上面的事,突然想到的而已。

        500)this.width=500; border=0>

        打開 hello.i 可以看到GCC 的預處理,后面類同,打開新生成的東西分析下就OK了。很抱歉,打印輸出的時候忘記加個 n

        *linux 無論命令還是參數還是文件名都區分大小寫!如上面的 -E 寫成 -e就報文件找不到

        *文件名的輸入,沒必要一個字一個字打,例如里面的hello.c ,只要打h按TAB制表符就會輸入,快多了,爽啊,其他linux 下有關文件名目錄的操作等都有此快速輸入法,書上竟然沒說,郁悶,害我之前浪費了N 多時間在打字

        *上面是分解步驟,其實實際操作中我直接就 gcc hello.c -o hello這種做法好嗎?不知道,我覺得挺方便的,如果有什么隱患,請告知

        GDB

        只寫幾個基本的命令敷衍下,因為這個的介紹要結合例子才說得清~~~

        (1)查看文件

        在Gdb 中鍵入“l”(list)就可以查看所載入的文件

        (2)設置斷點

        設置斷點是調試程序中是一個非常重要的手段,它可以使程序到一定位置暫停它的運行。因此,程序員在該位置處可以方便地查看變量的值、堆棧情況等,從而找出代碼的癥結所在。


        上一頁 1 2 下一頁

        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 饶平县| 尼勒克县| 甘谷县| 集贤县| 阳城县| 义乌市| 台南县| 文昌市| 中卫市| 张家川| 邹平县| 湘潭县| 桂林市| 云阳县| 恩平市| 金堂县| 北海市| 开封市| 舒兰市| 汽车| 五峰| 中方县| 如东县| 北辰区| 遂溪县| 新昌县| 平昌县| 濮阳市| 陇西县| 繁昌县| 富平县| 新建县| 金阳县| 宁河县| 威海市| 凤凰县| 丹棱县| 综艺| 望江县| 南乐县| 凤庆县|