① c語言程序,預編譯的作用是什麼
預編譯又稱為預處理 , 是做些代碼文本的替換工作。
處理 # 開頭的指令 ,
比如拷貝 #include 包含的文件代碼,
#define 宏定義的替換 , 條件編譯等,
就是為編譯做的預備工作的階段,主要處理#開始的預編譯指令,預編譯指令指示了在程序正式編譯前就由編譯器進行的操作,可以放在程序中的任何位置。
c 編譯系統在對程序進行通常的編譯之前,先進行預處理。 c 提供的預處理功能主要有以下三 種:
1)宏定義 #definemin(a,b)((a)>(b)?(b)::(a))
2 )文件包含 如:#include<stdio.h>
3 )條件編譯#ifndefGRAPHICS_H
#defineGRAPHICS_H
*****
#endif
#ifdefGRAPHICS_H
*****
#else
*****
#endif
② C語言為什麼要先編譯成匯編語言
C語言,具有可移植性,或者說同樣的代碼可以在不同cpu平台上運行得到同樣的結果
匯編語言,移植性差,一般針對某型cpu,每個類型的cpu都有自己的匯編語言
為保證C語言編制的通用演算法的可移植性,比如我們用C編寫了一套mp3解碼演算法程序,要在pc機上、手機上都能用,那麼我們就採用通用的C編譯器,將C語言程序編譯成指定CPU的匯編語言,再匯編成機器可執行程序。
另一個用途是程序優化問題,在C語言層次,由於是高級語言,不涉及底層硬體,那麼底層硬體的特性不能夠得到充分利用,在需要優化演算法的場合,我們需要將C語言演算法編譯生成匯編程序,然後修改需要優化的匯編程序達到目的。比如,你在手機上經常會遇到音頻解碼器,需要安裝,而且不同的cpu需要選擇不同的解碼器,這些解碼器應當就是在匯編層次上優化了演算法的可執行代碼,關鍵部分經過匯編級優化,不需要優化部分仍然使用C語言編譯的結果。
③ 為什麼要對C源程序進行編譯、鏈接
首先要說的是C語言屬於高級語言,不能直接被計算機識別而執行,所以需要一些操作來轉化。。一開始是編譯預處理,對宏,包含指令,編譯指令等進行處理,然後是詞法語法分析,將源代碼翻譯成中間代碼(一般是匯編),接著優化代碼,,然後將中間代碼翻譯成機器語言(目標文件),機器語言是計算機的基層語言,能被計算機直接識別。。接著鏈接目標文件,生成可以執行文件。。。大概就是這樣。。詳細的LZ可看這個總結。。http://bbs.zdnet.com.cn/thread-1614727-1-1.html
④ C程序編譯的目的是什麼啊
將其翻譯成等價的中間代碼表示或匯編代碼
⑤ 調試時,對C語言源程序進行編譯的目的是什麼
建議看看編譯原理。
我們的PC機,只能認識機器碼,不認識C語言的。編譯,就是讓C語言變得讓機器認識。
編譯過程,一般是:
C語言-->匯編語言-->2進制文件。
2進制文件由操作系統裝載,並調度運行。
⑥ c編譯程序是什麼
c編譯程序是將c語言程序編譯成目標代碼程序的程序,即正確答案應該選擇D。
1、c語言是目前世界上最流行、使用最廣泛的面向過程的高級程序設計語言。 c語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用c語言明顯優於其它高級語言,許多大型應用軟體都是用c語言編寫的。
2、編譯就是利用編譯程序從源語言編寫的源程序產生目標程序的過程,其中的五個階段分別是詞法分析、語法分析、語義檢查和中間代碼生成、代碼優化、目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。
(6)c程序編譯目的擴展閱讀
c編譯程序的語言特點
對於c編譯程序來說,其語言的特點如下:
1、c語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護,而且表現能力和處理能力極強。
2、c語言具有豐富的運算符和數據類型,便於實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。
3、由於c語言實現了對硬體的編程操作,因此集高級語言和低級語言的功能於一體。它既可用於系統軟體的開發,也適合於應用軟體的開發。
4、此外,c語言還具有效率高、可移植性強等特點。因此它廣泛地移植到了各類各型計算機上,從而形成了多種版本。
⑦ 編譯程序的作用是() A把源程序譯成目標程序 B解釋並執行程序C目標程序譯成源程序D隊員程序進行編譯
答案應該選擇A
首先,需要將你的代碼文件.cpp .h .c .java等文件編譯成相應的目標程序,也就是.o .class文件
這就是編譯過程。
C語言然後會執行鏈接link操作,將生成.o生成.dll 或者.exe文件等
這是鏈接
然後雙擊exe文件,這是程序的執行過程。你說的B中執行程序應該是這個過程。跟編譯差了好遠呢
Java直接通過JVM 對class文件進行解釋,就能夠直接執行
⑧ C語言編譯,目的是輸入一個四行四列的矩陣,找出最小值並輸出轉置矩陣
#include<stdio.h>
intmain()
{
inta[4][4];
intb[4][4];//
inti,j,min;
introw,colum;//
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
}
min=a[0][0];
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
if(a[i][j]<min)
{
min=a[i][j];
row=i;//
colum=j;//
}
}
printf("min=%d row=%d colum=%d ",min,row,colum);//
printf(" ");
printf(" ");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
b[j][i]=a[i][j];
}
}
printf("b: ");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
printf("%5d",b[i][j]);
}
printf(" ");
}
return0;
}
⑨ C編譯程序的功能是什麼
檢查C語言程序的語法錯誤
如果用gcc編譯,只需要一個命令就可以生成可執行文件hw:xiaosuo@gentux hw $ gcc -o hw hw.cxiaosuo@gentux hw $ ./hw Hello World!
補充:編譯程序(Compiler,compiling program)也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
⑩ c語言程序,預編譯的作用
我們在用c做開發的時候,有時候項目很大,所寫的程序會很長。這樣我們如果還是寫在一個文件中,會出現管理上的問題和查看上的不方便,因此我們可以分多個文件寫我們的程序,這樣把一個功能的程序寫到一個文件里,便於查看也便於管理。但是把他們合起來的時候。頭文件會多次包含預編譯,預編譯的處理就可以用來防止頭文件的重復包含和編譯。
第二,使用宏定義可以提高程序的通用性和易讀性,減少不一致性,減少輸入錯誤便於修改。展開宏也是預編譯處理中的一項功能。
還有條件編譯處理也是預處理中的一項功能。