一 C語言執行環境和編譯(1)

2021-10-11 21:36:29 字數 1936 閱讀 7472

3 第乙個c程式hello.c詳解

4 system庫函式

5 cpu概述

1 編寫原始碼

使用的ide:

1 如何用vs寫原始碼

2 用記事本寫原始碼

2 編譯原始碼

對原始碼進行編譯:

編譯器gcc

配置環境變數 path新增gcc.exe的路徑

完成後gcc -v 檢視是否成功配置

tips:windows視窗清屏命令:cls

編譯源**指令:

gcc hello.c -o生成的目標可執行檔案 ***.exe

3 執行可執行檔案***.exe

windows視窗執行***

前言:上面處理是一步到位:原始檔生成可執行檔案

編譯實際是經過四步的:

gcc -e hello.c -o hello.i   生成預處理檔案

1 預編譯會處理帶#的指令如#include

標頭檔案展開:預處理時將stdio.**件拷貝至預處理檔案中

2 刪除注釋

3 巨集替換:#define 定義乙個巨集 如#define pi 3.14,將檔案中的所有用巨集的地方用表示式替換

4 預處理不會檢查語法錯誤

5 條件編譯處理:根據編譯鍵入條件選擇**進行編譯

如:gcc -e hello.c -o hello.i -dabc

此時**段中

#if abc

printf(

"hello world"

)#endif

的**就會放入到預處理檔案中,

如果鍵入gcc -e hello.c -o hello.i,預處理檔案中就不會有該**段

gcc -s hello.i -o hello.s

將預處理檔案編譯生成彙編檔案

檢查語法錯誤

gcc -c hello.s -o hello.o  (c小寫,上面e和s是大寫)

將彙編檔案編譯生成二進位制檔案.o

gcc hello.o -o hello(hello.exe)

設定完執行環境,堆疊等,鏈結其他庫後,此時才可以生成執行檔案,windows執行

//# 預處理指令,在預編譯時處理

//#include 包含stdio.**件 stdio.h類似於選單

//printf函式依賴於stdio.**件裡的函式宣告

// 兩個斜槓是注釋

//符號與()結和代表這個是乙個函式

//main(

) main函式也叫主函式 整個程式中僅且只有乙個main函式,程式從main函式

//開始執行

//int 代表main函式結束之後的返回值型別

//return 結束這個函式,然後返回值,返回值的型別和函式定義時返回值型別一致

//int main(

)和void main(

)在c語言中是一樣的,但c++只接受int main這種定義方式

//裡面的是函式體,所有需要執行的**必須寫在中

//每一條**必須以分號;結尾

//printf是乙個庫函式,printf+()就是函式呼叫

#include

int main(

)

作用: 在程式中啟動另乙個程式

引數:要的是待啟動程式的路徑名

#include 

#include

int main(

)

cpu運算,暫存器儲存運算的資料

cpu計算時,預先將需要的資料從硬碟讀到記憶體,再把資料從記憶體讀到暫存器

因此cpu、暫存器、記憶體之間存在資料交換

C語言 編譯環境

在ansi c 的任何一種實現中,存在兩種不同的環境。第一種是翻譯環境,這裡源 被轉換成可執行的機器指令。第二種就是執行環境,它用於實際執行 標準說明,這兩種的環境不必位於同一臺機器上。翻譯 翻譯階段的幾個步驟 1.組成乙個程式的每個原始檔通過編譯過程分別轉換成目標 object code 2.每個...

C語言編譯環境

學習c語言其實已經很久了,大學期間學的是c 但是也基本是按照c的套路來學習的,所以嚴格來講c語言也不能是自學的,而且c 的只是也早就還給老師了,今天要說的不是語言本身,工欲善其事必先利其器,今天要說的是學習語言需要的編譯環境,我上大學的時候用的是vc 6.0,是比較經典的一款ide,但就是因為用了很...

C語言基礎之 C 語言的編譯和執行過程

編譯 生成 檔案 連線 將目標 和c 函式的庫進行連線 生成可執行的二進位制機器 執行 在特定的系統的環境下執行c 語言 n 相當於打了 乙個回車 t 相當於乙個 tab 鍵 void main 防止為 return 0 省略的情況 是 計算機中一塊特定放入記憶體空間 錢包存錢 或者 銀行存錢 in...