自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Unix操作系統(tǒng)知識講解

系統(tǒng) 其他OS
在Unix操作系統(tǒng)中,我們來學(xué)習(xí)下實現(xiàn)C源程序到可執(zhí)行文件的這一轉(zhuǎn)換過程的工具cc。進(jìn)行編譯預(yù)處理,生成匯編語言代碼。

我們在Unix操作系統(tǒng)中,實現(xiàn)C源程序到可執(zhí)行文件的這一轉(zhuǎn)換過程的工具是cc。在大多數(shù)系統(tǒng)中cc實際上是一個shell命令文件。cc命令還提供了其他許多有用的命令行選項。

借助于這些選項我們可以對編譯過程進(jìn)行進(jìn)一步的控制,如使cc只完成某些階段的編譯工作,指定對頭文件的搜索目錄,指定對代碼進(jìn)行優(yōu)化,指定在代碼中加入一些供調(diào)試程序所用的信息,等等。下面我們分別討論這些問題。

1.Unix操作系統(tǒng)僅進(jìn)行編譯預(yù)處理

在命令行中加上-P選項可以使cc僅完成對.c文件的預(yù)處理工作,而后面的編譯,匯編,優(yōu)化,鏈接則都不作,例如:$ cc -P myprog.c

此時編譯Unix操作系統(tǒng)將在當(dāng)前目錄下生成一個名為myprog.i的文件。這個文件中包含有對myprog.c中的偽指令進(jìn)行處理后的代碼及myprog.c中原有的代碼。

在某些情況下,.i文件可能對于程序排錯有一定的用處。對于下面的代碼段,編譯程序可能會報告j無定義的錯誤:
 

  1. for (i=0;i<10;i++)  
  2. { /*declare avariable j:  
  3. int j;/*This is a temporary variable */  
  4. j=i*i;  
  5. .  
  6. .  
  7. .  
  8. }  

 

預(yù)編譯處理后,缺省情況下,預(yù)處理程序?qū)言闯绦蛑械淖⑨寗h除,這樣改段代碼將變成:
 

  1. for (i=0;i<10;i++)  
  2. {  
  3. j=i*i;  
  4. .  
  5. .  
  6. .  


這樣一來我們將能夠比較快地發(fā)現(xiàn)程序中的錯誤。利用.i文件,我們還能夠?qū)l件編譯和宏擴展后的結(jié)果進(jìn)行檢查。

在cc命令行中加上-C選項可以在預(yù)編譯后的文件中保留源文件中的注釋。

2.Unix操作系統(tǒng)僅生成匯編語言代碼

在cc命令行中加上-S 選項,可以使cc只調(diào)用預(yù)處理程序和編譯程序以生成與源程序相應(yīng)的匯編代碼。與每一個C源文件相應(yīng)的匯編程序被放到相應(yīng)的.s文件中。例如:
 

  1. $ cc -S myprog.c myfunc.c  
  2. $ ls *.s  
  3. myfunc.s myprog.s  

這種匯編語言代碼是同機器具體相關(guān)的。有些情況下我們可能需要用匯編語言進(jìn)行編程,這時可以先用C語言編寫此程序,再編譯得到匯編程序,然后手工對此匯編程序修修改改,估計基本上就能滿足要求。由于用匯編語言進(jìn)行編程是一件效率比較低的工作,用此種方法可以預(yù)期將獲得比較高的效率。

我們關(guān)于Unix操作系統(tǒng)的知識就講到這里了。

【編輯推薦】

  1. 關(guān)于Unix操作系統(tǒng)用戶命令
  2. 講解Unix操作系統(tǒng)遠(yuǎn)程知識
  3. 解析幾個Unix操作系統(tǒng)網(wǎng)絡(luò)命令
  4. Unix操作系統(tǒng)即時通信
  5. Unix操作系統(tǒng)路漫漫
責(zé)任編輯:小霞
相關(guān)推薦

2010-04-29 13:30:20

Unix操作系統(tǒng)

2010-05-04 17:17:46

Unix類

2010-04-20 10:12:40

Unix操作系統(tǒng)

2010-04-19 17:47:59

Unix操作系統(tǒng)

2010-04-19 17:34:02

Unix操作系統(tǒng)

2010-04-15 18:06:08

Unix操作系統(tǒng)

2010-05-07 13:04:11

Unix Shell

2010-05-07 17:31:42

Unix類操作系統(tǒng)

2010-04-19 12:40:00

Unix操作系統(tǒng)

2010-05-07 17:41:36

BSD Unix

2010-04-29 14:08:38

Unix操作系統(tǒng)

2010-04-20 11:16:08

Unix操作系統(tǒng)

2010-04-09 16:36:54

Unix操作系統(tǒng)

2010-04-20 17:34:25

Unix操作系統(tǒng)

2010-04-19 17:25:31

Unix操作系統(tǒng)

2010-04-19 16:57:09

Unix操作系統(tǒng)

2010-04-19 10:54:33

Unix操作系統(tǒng)

2010-04-19 17:39:50

Unix操作系統(tǒng)

2010-04-15 14:40:26

Unix操作系統(tǒng)

2010-04-20 17:11:33

Unix操作系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號