編譯c語言
編譯共分為四個階段:預處理階段、編譯階段、匯編階段、鏈接階段。
1、預處理階段:
主要工作是將頭文件插入到所寫的代碼中,生成擴展名為「.i」的文件替換原來的擴展名為「.c」的文件,但是原來的文件仍然保留,只是執行過程中的實際文件發生了改變。(這里所說的替換並不是指原來的文件被刪除)
2、匯編階段:
插入匯編語言程序,將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤後,編譯器把代碼翻譯成匯編語言,同時將擴展名為「.i」的文件翻譯成擴展名為「.s」的文件。
3、編譯階段:
將匯編語言翻譯成機器語言指令,並將指令打包封存成可重定位目標程序的格式,將擴展名為「.s」的文件翻譯成擴展名為「.o」的二進制文件。
4、鏈接階段:
在示例代碼中,改代碼文件調用了標准庫中printf函數。而printf函數的實際存儲位置是一個單獨編譯的目標文件(編譯的結果也是擴展名為「.o」的文件),所以此時主函數調用的時候,需要將該文件(即printf函數所在的編譯文件)與hello world文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合並後生成一個可執行目標文件。
Ⅱ C語言怎麼編譯呀
在本機上搭建IDE開發環境,在IDE中導入編譯器,就可以本地編譯了。
把代碼在本地寫好,編譯過之後,運行樣例沒問題後,再上傳的網站上,網站上是有編譯器的,你選擇之後會自動編譯。
Ⅲ c語言是編譯型語言嗎
當然!
c程序,編譯後才能運行
Ⅳ 怎樣用c語言編譯
C編譯的整個過程很復雜,大致可以分為以下四個階段:
預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。
編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。
匯編階段將匯編語言翻譯成機器指令。
鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。
Ⅳ C語言 選擇編譯
你的問題是不是寫反了。
如果是A.c B.c,包含了同一個.h文件,那你不想編譯B.c,直接刪除工程的B.c就好了啊,反正都不用。
如果你是問是同一個.h引用了A.c,B.c,那你想選擇語句:
#ifdef 宏名稱
include 「文件」
#endif
Ⅵ 通過GCC編譯器編譯c語言
打開終端
vim test.c
然後輸入你的程序
保存:wq
gcc -o test test.c
如果沒有提示錯誤的話
./test 就可以運行
基本步驟就大致如此 詳細的還需要了解下VIM的調試運行的方法 不過內容不多
Ⅶ c語言用什麼編譯
visual C++ 6.0 ,現在通用的c語言編輯器,可以編譯c或者是c++,只是新建源文件時要手動設置文件名為(.c),否則系統將自動添加c++源文件的擴展名(.cpp)。
visual C++ 6.0是visual studio中的一部分,網上也能找到獨立的visual C++ 6.0。
visual studio最新版本為visual studio 2010.
Ⅷ 編譯C語言
雖然很多大學都用的是TC
但是我很不推薦使用它的
原因就是太老了,對標准支持不好
有的時候會讓你一頭霧水...
至於VC6.0,對標准支持也不好
也感覺不太好,你還是不要選擇上面兩個
至於編譯器,你可以用VS2005...
如果閑大,可以用Dev-C++
或者gcc g++等,這些都小巧,而且對標准支持也不錯
當然,我自己是用VS2008的,現在這個bug也多,其實微軟的
vs2005就足夠你用了,vs2008的比2005的速度能快點
上面這些都支持對C語言的編譯的,你可以自己選擇
Ⅸ c語言編譯器
編譯器無好壞 最流行的就好 ,很多人都用trubo c 2.0.vc6.0這些都是些很老很過時的編譯器。用最新的吧,從工程入手。不然學了半年編程,連怎麼建立最簡單的工程都不會。vs2010,vs2012,vs2008,