c類編譯
1. 一個類C的編譯器大概有多少行
很難說確定多少行的,代碼的多少要看演算法和實現。反正我為了實現一個子集花了三四千行,太累了,但是網上JIT C 編譯器,確僅僅575 行。
2. c語言編譯執行的全過程是怎樣的
預處理階斷:這個就是那些#include啥的。
編譯階斷:把C語言的代碼轉成匯編語言代碼,比如 int a = 2; 它會生成mov a, 2;
匯編階斷:把匯編代碼轉換成機器碼,比如把mov a , 2 ; 轉成 cd07 (mov指令的機器碼中的一種機器碼)
鏈接階斷:製作成一個可執行文件,比如windows是PE的可執行文件,linux是elf的可執行文件,要製作成可以運行的程序。
3. C語言編寫好代碼後,怎麼編譯,最後生成可執行文件
材料/工具:vc6.0
1、打開c語言編輯工具,在工具中寫入程序的源代碼。
4. C語言源程序的編譯過程包括哪三個階段
編譯:將源程序轉換為擴展名為.obj的二進制代碼
連接:將obj文件進行連接,加入庫函數等生成可執行文件
運行:執行可執行文件,有錯返回修改,無錯結束
5. c語言編譯過程
改程序改對後運行結果是327893.2789e+006A,改完後的代碼:
#include <iostream>
int main()
{
int a = 32789;
float p = 3.14;
char c = 'A';
p = a * 100;
std::cout<<a<<p<<c<<"\n";
return 0;
}
6. c編譯程序是什麼
c編譯程序是將c語言程序編譯成目標代碼程序的程序,即正確答案應該選擇D。
1、c語言是目前世界上最流行、使用最廣泛的面向過程的高級程序設計語言。 c語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用c語言明顯優於其它高級語言,許多大型應用軟體都是用c語言編寫的。
2、編譯就是利用編譯程序從源語言編寫的源程序產生目標程序的過程,其中的五個階段分別是詞法分析、語法分析、語義檢查和中間代碼生成、代碼優化、目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。
(6)c類編譯擴展閱讀
c編譯程序的語言特點
對於c編譯程序來說,其語言的特點如下:
1、c語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護,而且表現能力和處理能力極強。
2、c語言具有豐富的運算符和數據類型,便於實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。
3、由於c語言實現了對硬體的編程操作,因此集高級語言和低級語言的功能於一體。它既可用於系統軟體的開發,也適合於應用軟體的開發。
4、此外,c語言還具有效率高、可移植性強等特點。因此它廣泛地移植到了各類各型計算機上,從而形成了多種版本。
7. C語言是解釋類還是編譯類的語言什麼是解釋類語言,編譯類語言
C語言是屬編譯類語言
計算機不能直接理解高級語言,只能直接理解機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能執行高級語言編寫的程序。
翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。編譯型語言寫的程序執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如exe文件,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高。
解釋則不同,解釋性語言的程序不需要編譯,省了道工序,解釋性語言在運行程序的時候才翻譯,比如解釋性basic語言,專門有一個解釋器能夠直接執行basic程序,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。
java很特殊,java程序也需要編譯,但是沒有直接編譯稱為機器語言,而是編譯稱為位元組碼,然後用解釋方式執行位元組碼。
8. C類在二維數組編譯失敗問題,怎麼解決
你好!
首先你的代碼有兩個問題:
1、動態創建一維數組時,是p = new int[m];
因此動態創建二維數組時,應該是p = new int *[m]; 而不是*p = new int[m]; 你的程序運行到這一步出錯。
2、多次定義row,導致編譯出錯。
另外,如果要釋放指針,需要先把數組p中的指針依次delete,最後再釋放p。
最終代碼如下:
int main()
{
int **p;
int m,n;
cout << "請輸入行數和列數:" << endl;
cin >> m >> n;
p = new int *[m];
for(int i = 0;i <= m-1;i++)
{
p[i]=new int[n];
}
for(int row = 0;row <= m-1;row++)
{
for(int col = 0; col <= n-1;col++)
{
p[row][col] = 0;
}
}
for(row = 0;row <= m-1;row++)
{
for(int col = 0; col <= n-1;col++)
{
cout << p[row][col] << "\t";
}
cout << "\n";
}
for(row = 0;row <= m-1;row++)
{
delete [] p[row];
}
delete p;
system("pause");
return 0;
}
希望可以幫到你,謝謝!
9. C語言文件的編譯與執行的四個階段並分別描述
開發C程序有四個步驟:編輯、編譯、連接和運行。
任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。
1、預處理:導入源程序並保存(C文件)。
2、編譯:將源程序轉換為目標文件(Obj文件)。
3、鏈接:將目標文件生成為可執行文件(EXE文件)。
4、運行:執行,獲取運行結果的EXE文件。
(9)c類編譯擴展閱讀:
將C語言代碼分為程序的幾個階段:
1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。
2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。
3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。
4、在鏈接過程中,需要重新調整其他目標文件中定義的函數調用指令,而其他目標文件中定義的變數也存在同樣的問題。
10. 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的組件集成為和諧的開發環境。