當前位置:首頁 » 編程語言 » c語言物體編譯
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言物體編譯

發布時間: 2022-06-11 08:49:31

1. c語言編寫好代碼後,怎麼編譯,最後生成可執行文件

材料/工具:vc6.0

1、打開c語言編輯工具,在工具中寫入程序的源代碼。

2. C語言源程序的編譯過程包括哪三個階段

編譯:將源程序轉換為擴展名為.obj的二進制代碼
連接:將obj文件進行連接,加入庫函數等生成可執行文件
運行:執行可執行文件,有錯返回修改,無錯結束

3. c語言程序編譯過程包括哪四個

C語言編譯過程分成四個步驟: 
1,由.c文件到.i文件,這個過程叫預處理 
2,由.i文件到.s文件,這個過程叫編譯 
3,由.s文件到.o文件,這個過程叫匯編 
4,由.o文件到可執行文件,這個過程叫鏈接
用gcc查看預處理過程(假設源文件叫hello.c) 
gcc -o hello.i hello.c -E 
然後用 vi hello.i 即可查看生成的預處理文件
按ESC 輸入:$ 跳到預處理文件 可看到hello.c源碼
宏的本質:預處理階段的單純的字元串替換
預處理階段,不考慮C語法

4. 用C語言編譯一個簡單的物體移動程序

#include<reg52.h>

sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;

unsigned char code LedChar[]={
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
unsigned char LedBuff[7]={
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
unsigned char code image[30][8]={
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, //動畫幀1
{0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F}, //動畫幀2
{0xFF,0x3F,0x7F,0x7F,0x7F,0x7F,0x7F,0x3F}, //動畫幀3
{0xFF,0x1F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F}, //動畫幀4
{0xFF,0x0F,0x9F,0x9F,0x9F,0x9F,0x9F,0x0F}, //動畫幀5
{0xFF,0x87,0xCF,0xCF,0xCF,0xCF,0xCF,0x87}, //動畫幀6
{0xFF,0xC3,0xE7,0xE7,0xE7,0xE7,0xE7,0xC3}, //動畫幀7
{0xFF,0xE1,0x73,0x73,0x73,0xF3,0xF3,0xE1}, //動畫幀8
{0xFF,0x70,0x39,0x39,0x39,0x79,0xF9,0xF0}, //動畫幀9
{0xFF,0x38,0x1C,0x1C,0x1C,0x3C,0x7C,0xF8}, //動畫幀10
{0xFF,0x9C,0x0E,0x0E,0x0E,0x1E,0x3E,0x7C}, //動畫幀11
{0xFF,0xCE,0x07,0x07,0x07,0x0F,0x1F,0x3E}, //動畫幀12
{0xFF,0x67,0x03,0x03,0x03,0x07,0x0F,0x9F}, //動畫幀13
{0xFF,0x33,0x01,0x01,0x01,0x03,0x87,0xCF}, //動畫幀14
{0xFF,0x99,0x00,0x00,0x00,0x81,0xC3,0xE7}, //動畫幀15
{0xFF,0xCC,0x80,0x80,0x80,0xC0,0xE1,0xF3}, //動畫幀16
{0xFF,0xE6,0xC0,0xC0,0xC0,0xE0,0xF0,0xF9}, //動畫幀17
{0xFF,0x73,0x60,0x60,0x60,0x70,0x78,0xFC}, //動畫幀18
{0xFF,0x39,0x30,0x30,0x30,0x38,0x3C,0x7E}, //動畫幀19
{0xFF,0x9C,0x98,0x98,0x98,0x9C,0x1E,0x3F}, //動畫幀20
{0xFF,0xCE,0xCC,0xCC,0xCC,0xCE,0x0F,0x1F}, //動畫幀21
{0xFF,0x67,0x66,0x66,0x66,0x67,0x07,0x0F}, //動畫幀22
{0xFF,0x33,0x33,0x33,0x33,0x33,0x03,0x87}, //動畫幀23
{0xFF,0x99,0x99,0x99,0x99,0x99,0x81,0xC3}, //動畫幀24
{0xFF,0xCC,0xCC,0xCC,0xCC,0xCC,0xC0,0xE1}, //動畫幀25
{0xFF,0xE6,0xE6,0xE6,0xE6,0xE6,0xE0,0xF0}, //動畫幀26
{0xFF,0xF3,0xF3,0xF3,0xF3,0xF3,0xF0,0xF8}, //動畫幀27
{0xFF,0xF9,0xF9,0xF9,0xF9,0xF9,0xF8,0xFC}, //動畫幀28
{0xFF,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE}, //動畫幀29
{0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF} //動畫幀30
};
unsigned char index=0;

void main()
{
unsigned int j = 0;
unsigned int cnt = 0;
unsigned long sec = 0;
unsigned char i = 0;

ENLED = 0;
ADDR3 = 1;
TMOD = 0x01;
TH0 = 0xFC;
TL0 = 0x67;
TR0 = 1;

while(1)
{
if(TF0 ==1)
{
TF0 = 0;
TH0 = 0xFC;
TL0 = 0x67;
cnt++;
sec=0x1e240;
switch(j)
{ case 0: LedBuff[0] = LedChar[sec%10];j++;break;
case 1:LedBuff[1] = LedChar[sec/10%10];j++;break;
case 2:LedBuff[2] = LedChar[sec/100%10];j++;break;
case 3:LedBuff[3] = LedChar[sec/1000%10];j++;break;
case 4:LedBuff[4] = LedChar[sec/10000%10];j++;break;
case 5:LedBuff[5] = LedChar[sec/100000%10] ;j=0;break;
default:break;
}
if(cnt>1000)
{ i++;
cnt=0;
}
switch(i)
{
case 0: ADDR2=0; ADDR1=0; ADDR0=0; P0=LedBuff[0];break;
case 1: ADDR2=0; ADDR1=0; ADDR0=1; P0=LedBuff[1];break;
case 2: ADDR2=0; ADDR1=1; ADDR0=0; P0=LedBuff[2];break;
case 3: ADDR2=0; ADDR1=1; ADDR0=1; P0=LedBuff[3];break;
case 4: ADDR2=1; ADDR1=0; ADDR0=0; P0=LedBuff[4];break;
case 5: ADDR2=1; ADDR1=0; ADDR0=1; P0=LedBuff[5];break;
case 6: ADDR2=1; ADDR1=1; ADDR0=0; P0=0x01;break;
case 7: ADDR2=1; ADDR1=1; ADDR0=0; P0=0xFF;break;
default:break;
}
if(i>8)
{

ADDR3=0;
EA=1;
ENLED=0;
TH0=0xFC;
TL0=0x67;
TR0=1;
ET0=1;
if(index>=30)
{i=0;ADDR3=1;EA=0;ET0=0;index=0;}
}
}
}}
void InterruptTimer0() interrupt 1
{
static unsigned char k=0;
static unsigned char tmr=0;
TH0=0xFC;
TL0=0x67;
P0=0xFF;
switch(k)
{
case 0: ADDR2=0; ADDR1=0; ADDR0=0; k++; P0=image[index][0]; break;
case 1: ADDR2=0; ADDR1=0; ADDR0=1; k++; P0=image[index][1]; break;
case 2: ADDR2=0; ADDR1=1; ADDR0=0; k++; P0=image[index][2]; break;
case 3: ADDR2=0; ADDR1=1; ADDR0=1; k++; P0=image[index][3]; break;
case 4: ADDR2=1; ADDR1=0; ADDR0=0; k++; P0=image[index][4]; break;
case 5: ADDR2=1; ADDR1=0; ADDR0=1; k++; P0=image[index][5]; break;
case 6: ADDR2=1; ADDR1=1; ADDR0=0; k++; P0=image[index][6]; break;
case 7: ADDR2=1; ADDR1=1; ADDR0=1; k=0; P0=image[index][7]; break;
default: break;
}
tmr++;
if(tmr>250)
{
tmr=0;
index++;
}
}

5. 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的組件集成為和諧的開發環境。

6. 怎樣用c語言編譯

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

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

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

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

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

7. C語言怎麼編譯呀

在本機上搭建IDE開發環境,在IDE中導入編譯器,就可以本地編譯了。
把代碼在本地寫好,編譯過之後,運行樣例沒問題後,再上傳的網站上,網站上是有編譯器的,你選擇之後會自動編譯。

8. c語言中的編輯,編譯,連接,運行分別是什麼意思

1、編輯:編寫代碼,製作C語言的源文件。

2、編譯:是由編譯程序將C語言源文件轉換成二進制中間文件,對文件內部的語法語義做處理,如果編譯出錯,無法進行後續動作。

3、鏈接:將編譯中生成的中間文件組合成二進制可執知行文件,這一步會對文件之間的關聯做檢查,如果出錯,將不會生成可執行文件,也就無法執行。

4、執行:運行可執行文件,這一步道是編寫代碼的最終目的。

(8)c語言物體編譯擴展閱讀:

DOS命令通常分為三類:內部命令、外部命令和批處理命令。

1、內部命令:

其包含在命令解釋程序COMMAND.COM中,一旦啟動DOS,這些命令就被調入內存,只要在DOS系統提示符下輸入這些命令,就可立即執行。

2、外部命令:

其以文件的形式存儲在系統盤上,所帶擴展名為COM和EXE。DOS啟動時,它們並沒有被調入內存,執行前必須從系統盤讀進內存。因此輸入外部命令時,要了解該命令是否在當前盤上,不然DOS無法找到它們。

3、批處理命令:

實際上是個文件,該文件包含多條命令,當用戶鍵入批處理文件名時,DOS將順序執行其中的各條命令。注意,批處理命令必須用「.BAT」作為擴展名。

C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單。

當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則就會顯得十分重要。

網路-運行命令

網路-C語言

9. C語言如何編譯

先創建一個工程,選擇win32的吧,然後一直下一步直到完成

然後在左邊找到你創建的一個和你工程名字一樣的文件打開,如果沒錯的話裡面應該是一個main函數示例,把它刪,把你的代碼粘貼到這個文件,按F5會提示編譯,確定後開始編譯,如果編譯沒問題會在編譯完成後運行(調試態)

娟豬下班了沒有

10. C語言編譯執行的全過程是怎樣的

不明白樓主什麼意思,就是先把你的代碼轉為匯編代碼,然後轉為二進制文件,讀入內存執行。