可執行程式的裝載和啟動---linux核心學習筆記(七)

來源:互聯網
上載者:User

標籤:

內容一:實驗報告相關說明

真實姓名 謝潤幫

原創作品轉載請註明出處 

所學課程:《Linux核心分析》MOOC課程  

連結:http://mooc.study.163.com/course/USTC-1000029000

 

內容二:可執行檔的建立(自己本身對這塊不熟,是通過查資料來學習的,篇幅有點多)

  2.1 預先處理階段

  預先處理過程讀入原始碼,檢查包含預先處理指令的語句和宏定義,並對原始碼進行相應的轉換,預先處理過程還會刪除程式中的注釋和多餘的空白字元。

其中預先處理指令主要包括以下四個方面:

     2.1.1 宏定義指令

       預先處理過程會把原始碼中出現的宏標識符替換成宏定義時的值,常用的兩種宏定義: 

1 //聲明一個標識符,全部用大寫字母來定義宏2 #define MAX_NUM 103 4 //帶參數的#define指令(宏函數)5 #define Cube(x)  ((x)*(x))6 int i,num=1;7 i=Cube(num);

    2.1.2 條件編譯指令

      定義不同的宏來決定編譯器對哪些代碼進行處理,條件編譯指令將決定哪些代碼被編譯,而哪些是不被編譯的。

    2.1.3 標頭檔包含指令

      #include預先處理指令的作用是在指令處展開被包含的檔案。

    程式中包含標頭檔有兩種格式:#include <my.h>

                  #include "my.h"

    2.1.4 特殊符號

      先行編譯程式可以識別一些特殊的符號。先行編譯程式對於在來源程式中出現的這些串將用合適的值進行替換,__FILE__,__LINE__,__TIME__ 等。

    以下代碼分別列印所在檔案名稱和目前時間。

1 int main(int argc, char *argv[]) 2 {3     printf("%s\n",__FILE__);4     printf("%s\n",__TIME__);5     return 0;6 }

      

可執行程式的裝載和啟動---linux核心學習筆記(七)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.