程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言---翻譯過程,c語言---

C語言---翻譯過程,c語言---

編輯:關於C語言

C語言---翻譯過程,c語言---


c的實現中包括兩種環境:

1.翻譯環境(translation environment):源程序---->機器指令

2.執行環境(execution environment):執行機器指令

 這兩種環境不必位於同一機器。

 

翻譯:

  翻譯會將源文件編譯成為目標文件(object code),然後鏈接器(linker)將各個目標文件鏈接到一起,形成一個可執行文件。

  鏈接器同時也會引入程序中調用的外部文件的函數。

    編譯:

      1.預處理:處理偽指令和特殊符號

        偽指令包括宏定義指令(#define)、 條件編譯指令(#ifdef,#ifndef,#else,#elif,#endif)、頭文件包含指令(#include)

        特殊符號:LINE(當前行數)、FILE(當前被編譯的源程序的名稱)等

      2.解析:詞法分析和語法分析,生成目標代碼

      3.優化:優化器(optimizer)對目標文件進行優化

   unix下的指令:

    1.gcc(cc)   program.c    ----->直接生成a.out可執行文件,中間生成的目標文件會在鏈接後刪除

    2.gcc(cc)  main.c sort.c lookup.c ---->一次編譯超過一個文件,生成的目標文件不會背刪除

    3.gcc(cc)  main.c  -o  main  ---->指定生成的文件名為main

    4.gcc(cc) -c main.c   ---->生成目標文件

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved