日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【C语言进阶深度学习记录】十五 编译过程简介

發布時間:2023/12/10 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C语言进阶深度学习记录】十五 编译过程简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1 初識編譯器
    • 2 總結

1 初識編譯器

我們平時口中所說的編譯器,是廣泛的編譯器。實際上,編譯器包括了以下四個部分:

一個C代碼被編譯為可執行代碼,包括以下幾個過程:

  • 下面就對上述的各個過程進行一個詳細的說明:
  • 預編譯
    • 處理所有的注釋,以空格代替
    • 將所有的#define 進行宏展開
    • 處理條件編譯指令 #if , #ifdef, #elif , #else , #endif
    • 處理include,展開被包含的文件
    • 保留編譯器需要使用的 #pragma 指令。這個后面的文章還會學習

    預處理指令示例:gcc -E file.c -o file.i

  • 編譯
    • 對預處理所得到的 .i 文件進行詞法分析,語法分析,語義分析,

      • 詞法分析:分析關鍵字,標識符,立即數等是否合法
      • 語法分析:分析表達式是否遵循語法規則
      • 語義分析:在語法分析的基礎上,進一步分析表達式是否合法
    • 上面三個分析沒有問題后,進行代碼優化生成相應的匯編代碼文件

    編譯指令示例:gcc -S file.i -o file.s

  • 匯編
    • 匯編將編譯生成的匯編代碼轉化為機器可以執行的指令

    匯編指令示例:gcc -C file.s -o file.o

  • 鏈接
  • 鏈接的內容比較重要,放到下一篇文章學習講解。

    2 總結

    • 預處理:處理宏,注釋,以及以 # 開頭的符號
    • 編譯: 進行詞法分析,語法分析,語義分析等
    • 匯編:將匯編代碼翻譯成機器可以識別的指令。

    總結

    以上是生活随笔為你收集整理的【C语言进阶深度学习记录】十五 编译过程简介的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。