導航:首頁 > 源碼編譯 > c語言編譯類型

c語言編譯類型

發布時間:2023-03-05 12:17:52

Ⅰ C語言中條件編譯有哪幾種形式

預處理程序提供了條件編譯的功能。 可以按不同的條件去編譯
不同的程序部分,因而產生不同的目標代碼文件。 這對於程序的移
植和調試是很有用的。
條件編譯有三種形式,下面分別介紹:
1. 第一種形式:
#ifdef 標識符
程序段1
#else
程序段2
#endif
它的功能是,如果標識符已被 #define命令定義過則對程序段1
進行編譯;否則對程序段2進行編譯。
如果沒有程序段2(它為空),本格式中的#else可以沒有, 即可
以寫為:
#ifdef 標識符
程序段
#endif

#define NUM ok
main(){
struct stu
{
int num;
char *name;
char sex;
float score;
} *ps;
ps=(struct stu*)malloc(sizeof(struct stu));
ps->num=102;
ps->name="Zhang ping";
ps->sex='M';
ps->score=62.5;
#ifdef NUM
printf("Number=%d\nScore=%f\n",ps->num,ps->score);
#else
printf("Name=%s\nSex=%c\n",ps->name,ps->sex);
#endif
free(ps);
}
由於在程序的第16行插入了條件編譯預處理命令, 因此要根據
NUM是否被定義過來決定編譯那一個printf語句。而在程序的第一行
已對NUM作過宏定義,因此應對第一個printf語句作編譯故運行結果
是輸出了學號和成績。
在程序的第一行宏定義中,定義NUM表示字元串OK,其實也可以
為任何字元串,甚至不給出任何字元串,寫為:
#define NUM
也具有同樣的意義。 只有取消程序的第一行才會去編譯第二個
printf語句。讀者可上機試作。
2. 第二種形式:
#ifndef 標識符
程序段1
#else
程序段2
#endif
與第一種形式的區別是將「ifdef」改為「ifndef」。它的功能
是,如果標識符未被#define命令定義過則對程序段1進行編譯, 否
則對程序段2進行編譯。這與第一種形式的功能正相反。
3. 第三種形式:
#if 常量表達式
程序段1
#else
程序段2
#endif
它的功能是,如常量表達式的值為真(非0),則對程序段1 進行
編譯,否則對程序段2進行編譯。因此可以使程序在不同條件下,完
成不同的功能。
#define R 1
main(){
float c,r,s;
printf ("input a number: ");
scanf("%f",&c);
#if R
r=3.14159*c*c;
printf("area of round is: %f\n",r);
#else
s=c*c;
printf("area of square is: %f\n",s);
#endif
}
本例中採用了第三種形式的條件編譯。在程序第一行宏定義中,
定義R為1,因此在條件編譯時,常量表達式的值為真, 故計算並輸
出圓面積。
上面介紹的條件編譯當然也可以用條件語句來實現。 但是用條
件語句將會對整個源程序進行編譯,生成的目標代碼程序很長, 而
採用條件編譯,則根據條件只編譯其中的程序段1或程序段2, 生成
的目標程序較短。如果條件選擇的程序段很長, 採用條件編譯的方
法是十分必要的。

☆本章小結☆
1. 預處理功能是C語言特有的功能,它是在對源程序正式編譯前由
預處理程序完成的。程序員在程序中用預處理命令來調用這些功
能。
2. 宏定義是用一個標識符來表示一個字元串,這個字元串可以是常
量、變數或表達式。在宏調用中將用該字元串代換宏名。
3. 宏定義可以帶有參數,宏調用時是以實參代換形參。而不是「值
傳送」。
4. 為了避免宏代換時發生錯誤,宏定義中的字元串應加括弧,字元
串中出現的形式參數兩邊也應加括弧。
5. 文件包含是預處理的一個重要功能,它可用來把多個源文件連接
成一個源文件進行編譯,結果將生成一個目標文件。
6. 條件編譯允許只編譯源程序中滿足條件的程序段,使生成的目標
程序較短,從而減少了內存的開銷並提高了程序的效率。
7. 使用預處理功能便於程序的修改、閱讀、移植和調試,也便於實
現模塊化程序設計。

Ⅱ C語言的數據類型分為幾種

short、int、long、char、float、double
這六個關鍵字代表C 語言里的六種基本數據類型。

在不同的系統上,這些類型占據的位元組長度是不同的:

在32
位的系統上

short
占據的內存大小是2 個byte;
int占據的內存大小是4
個byte;
long占據的內存大小是4
個byte;
float占據的內存大小是4
個byte;
double占據的內存大小是8
個byte;
char占據的內存大小是1
個byte。

具體可以用sizeof測試一下即可。

(2)c語言編譯類型擴展閱讀:

C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。

Ⅲ c語言是解釋型語言嗎

編程語言分為兩大類:1-編譯型語言;2-解釋型語言。之前我們講解過編譯型語言。現在就來講講解釋型語言

同學們可以繼續與翻譯進行類別,來理解「解釋型語言」。之前說過,編譯型語言是雇一個翻譯,將你寫的中文信全篇翻譯成英文,然後交給美國總統閱讀。而解釋型語言則不同,更像是「同聲傳譯」。

也就是說,解釋型語言使用一個翻譯站在你身邊,你寫出一句中文,它就直接翻譯成英文給對方閱讀。實際上,這個「翻譯」是一種虛擬機。所謂虛擬機,也是一種程序,它幫你隨時將編寫的源代碼翻譯成計算機可以理解的機器語言,讓計算機執行命令。而不需要產生中間的機器碼文件。比如,「BASIC」語言就是一種解釋型語言。

比如,你使用BASIC語言,想在屏幕上顯示文本「Hello」。那麼你可以先編寫源代碼文件,比如叫「hello.bas」,然後你可以直接將hello.bas文件送入虛擬機程序。然後虛擬機會直接幫你運行hello.bas(直接逐行解釋你的源代碼文件)。

解釋型語言最大的特點就是不創建中間文件。

解釋型語言的優點

對於不同的系統適應性較好,同樣的源代碼,可以直接運行在不同的系統(當然,前提是在不同系統上安裝好相應的虛擬機)。

解釋型語言的缺點

逐行解釋會導致程序運行速度不如編譯型語言快。可以想像下,你講中文時,說一句中文翻譯翻譯一句(解釋型語言)的速度,顯然比先把演講稿翻譯成全英文稿(編譯型語言)要慢很多。

解釋型語言舉例

屬於解釋型語言的有如下幾種:

Perl
javaScript
VBScript
AppleScript

Ⅳ c語言用什麼編譯器

c語言可以用的編譯器有很多,包括MicrosoftVisualC++、MyEclipse、TurboC和gcc編譯器等。

1、MicrosoftVisualC++是微軟公司的免費C語言編程軟體,是用戶在安裝VisualC++庫時必須安裝的運行時組件,可以完美解決在系統運行一些軟體時會遇到缺少DLL的情況,使用戶可正常運行VisualC++開發的應用程序。

2、myeclipse是款優秀的JAVA開發工具,MyEclipse功能強大,運用廣泛,尤其是對各種開源產品的支持十分不錯,能夠大大提高開發人員的工作效率。

3、TurboC是一款功能快捷高效的C語言編輯器,主要是用來編寫C/C++程序,無需獨立地編輯、編譯和連接程序就能建立並運行C語言程序,軟體體積非常的小巧,並且對於電腦方面沒有特別的系統要求,功能上也十分的強大。

4、gcc編譯器是款專業的c語言編輯工具,可用於c語言、c++、java、object-C等語言程序中去,支持交叉編譯器,交叉語言設計,提供交叉編譯環境,通過在命令列下鍵入一些命令參數,讓編程更有效率。

總結
c語言可以用的編譯器有很多,包括MicrosoftVisualC++、MyEclipse、TurboC和gcc編譯器等。

Ⅳ c語言有哪幾種編譯環境

C語言的編譯環境可以使用VC 6.0,Turbo C,GCC,Visual Studio等。其中較好用的軟體為VC 6.0++。
Microsoft Visual C++ 6.0,簡稱VC6.0,是微軟推出的一款C++編譯器,將「高級語言」翻譯為「機器語言(低級語言)」的程序。Visual C++是一個功能強大的可視化軟體開發工具。自1993年Microsoft公司推出Visual C++1.0後,隨著其新版本的不斷問世,Visual C++已成為專業程序員進行軟體開發的首選工具。雖然微軟公司推出了 Visual C++.NET(Visual C++7.0),但它的應用的很大的局限性,只適用於Windows 2000、Windows XP和Windows NT4.0。所以實際中,更多的是以Visual C++6.0為平台。Visual C++6.0不僅是一個C++ 編譯器,而且是一個基於Windows操作系統的可視化集成開發環境(integrated development environment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調試器以及程序向導AppWizard、類向導Class Wizard等開發工具。 這些組件通過一個名為Developer Studio的組件集成為和諧的開發環境。

Ⅵ c語言是編譯型語言嗎

當然!

c程序,編譯後才能運行

Ⅶ 常見的C語言編譯器是什麼

目前最流行的C語言編譯器有以下幾種:

1、GNU Compiler Collection 或稱GCC

GCC(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的編程語言編譯器。它是以GPL許可證所發行的自由軟體,也是 GNU計劃的關鍵部分。

GCC原本作為GNU操作系統的官方編譯器,現已被大多數類Unix操作系統(如Linux、BSD、Mac OS X等)採納為標準的編譯器,GCC同樣適用於微軟的Windows。GCC是自由軟體過程發展中的著名例子,由自由軟體基金會以GPL協議發布。

2、Microsoft C 或稱 MS C

Microsoft C 是c語言的一種IDE(集成開發環境),常見的還有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......

3、Borland Turbo C 或稱 Turbo C

Turbo C是美國Borland公司的產品,Borland公司是一家專門從事軟體開發、研製的大公司。該公司相繼推出了一套 Turbo系列軟體, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 這些軟體很受用戶歡迎。

(7)c語言編譯類型擴展閱讀:

C編譯的整個過程很復雜,大致可以分為以下四個階段:

1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。

2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。

3、匯編階段將匯編語言翻譯成機器指令。

4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。

Ⅷ C語言程序編譯後產生哪些類型的文件這些文件的作用是什麼

不同的系統,產生的文件不一樣;
win:
->.obj目標文件
->.obj目標文件->.exe可執行文件
->.rc
。。。。

Ⅸ 什麼是編譯型的C語言什麼是解釋型的BASIC語言二者的區別是什麼

C是一次性全轉成二進制文件然後執行,BASIC是轉一句執行一句。

閱讀全文

與c語言編譯類型相關的資料

熱點內容
asop源碼放在哪裡 瀏覽:985
電腦伺服器密碼怎麼找 瀏覽:572
jdp轉換pdf 瀏覽:744
把pdf導入iphone 瀏覽:508
米哈游租賃的雲伺服器是哪個 瀏覽:524
android直接打電話 瀏覽:1016
ubuntu停止命令 瀏覽:283
cnc攻絲編程 瀏覽:869
換個手機號碼app怎麼注冊 瀏覽:319
怎麼下載小猴口算app 瀏覽:115
輕鏈app的貨怎麼樣 瀏覽:625
電腦里的u盤如何加密 瀏覽:370
我的世界全部版本伺服器下載地址 瀏覽:50
交換原理pdf 瀏覽:228
菜鳥驛站app怎麼邀請新人 瀏覽:448
電腦里總是有一些1k的文件夾 瀏覽:45
drm加密絕對安全 瀏覽:512
android滅屏流程 瀏覽:496
如何更改站點文件夾名字 瀏覽:896
如何看伺服器幾核 瀏覽:276