c選擇編譯
先創建一個工程,選擇win32的吧,然後一直下一步直到完成
然後在左邊找到你創建的一個和你工程名字一樣的文件打開,如果沒錯的話裡面應該是一個main函數示例,把它刪,把你的代碼粘貼到這個文件,按F5會提示編譯,確定後開始編譯,如果編譯沒問題會在編譯完成後運行(調試態)
娟豬下班了沒有
『貳』 C語言怎麼編譯呀
在本機上搭建IDE開發環境,在IDE中導入編譯器,就可以本地編譯了。
把代碼在本地寫好,編譯過之後,運行樣例沒問題後,再上傳的網站上,網站上是有編譯器的,你選擇之後會自動編譯。
『叄』 c編譯程序是什麼
c編譯程序是將c語言程序編譯成目標代碼程序的程序,即正確答案應該選擇D。
1、c語言是目前世界上最流行、使用最廣泛的面向過程的高級程序設計語言。 c語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用c語言明顯優於其它高級語言,許多大型應用軟體都是用c語言編寫的。
2、編譯就是利用編譯程序從源語言編寫的源程序產生目標程序的過程,其中的五個階段分別是詞法分析、語法分析、語義檢查和中間代碼生成、代碼優化、目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。
(3)c選擇編譯擴展閱讀
c編譯程序的語言特點
對於c編譯程序來說,其語言的特點如下:
1、c語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護,而且表現能力和處理能力極強。
2、c語言具有豐富的運算符和數據類型,便於實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。
3、由於c語言實現了對硬體的編程操作,因此集高級語言和低級語言的功能於一體。它既可用於系統軟體的開發,也適合於應用軟體的開發。
4、此外,c語言還具有效率高、可移植性強等特點。因此它廣泛地移植到了各類各型計算機上,從而形成了多種版本。
『肆』 【C語言入門】編譯器的選擇
編譯器,不同編譯原理也不盡相同,但是一般沒有專門的c編譯器,c 向下兼容c程序,c 跟c程序的區別在於編寫代碼的格式,包括頭文件的調用,函數的書寫方式自己c 特有的一些東西。給你推薦一本書,林銳的 高質量C/C 編程
『伍』 C語言 選擇編譯
你的問題是不是寫反了。
如果是A.c B.c,包含了同一個.h文件,那你不想編譯B.c,直接刪除工程的B.c就好了啊,反正都不用。
如果你是問是同一個.h引用了A.c,B.c,那你想選擇語句:
#ifdef 宏名稱
include 「文件」
#endif
『陸』 新手初學C語言C++怎麼選擇編譯器
初學c++的話,應該把精力放在c++本身上,其實只要用熟一種就可以,不用糾結。建議直接使用visual studio的express版本,免費、輕量、好用,文檔也豐富,號稱宇宙第一IDE,值得擁有。
希望可以幫到你,謝謝!
『柒』 c語言編譯器的選擇
關於C語言編譯器的選擇(Tc2.0,Tc3.0,Vc6.0等)
我們在學習C語言時通常會面臨C語言編譯器的選擇,事實上C語言編譯器可以分為C和C++兩大類,其中C++是C的超集,均向下支持C。主要的C語言編譯器及特點分別如下:
(1)TC 2.0DOS平台軟體。最經典的C語言編譯器,系統體積小,簡單易學,容易上手,而且很多前人或書籍的程序均基於該編譯器,是學習C語言的首選。不過它不支持滑鼠,但讀者如果掌握幾個快捷鍵,操作時對滑鼠可能就不怎麼需要了,如:F2 存檔 F3 打開程序 Alt+F3在最近打開的文件之間切換 Alt+F5觀察運行結果F9 編譯製作EXE Ctrl+F9編譯並運行Ctrl+Y 刪除當前行 Ctrl+KB定義塊首 Ctrl+KK 定義塊尾 Ctrl+KC復制塊 Ctrl+KY刪除塊Ctrl+KV 移動塊
(2)Tc3.0DOS平台軟體。目前比較不錯的C/C++語言編譯器,支持滑鼠,語法著色,多文檔,錯誤跟蹤也很好,操作與TC2.0有很多類似,TC2.0會用那麼TC3.0也很快會用,缺點是以前很多代碼是用TC2.0設計的,而由於TC3.0語法要求的嚴格性,如要求函數必須定義類型,所以向下存在一定的兼容性問題,所以對於初學者選擇起來很矛盾,建議先學會使用TC2.0,而把TC3.0作為能力的補充和平時工具之用。目前有的教材已經選用該編譯器,不過需要一個較長的調整期,因為很多源代碼需要過渡過來才行,雖然性能上比TC2.0有所提高,但對於初學者沒有質的變化,選擇時需要注意。
(3)VC++ 6.0Windows平台。目前主流的C/C++語言編譯器,包含強大的類和內嵌WinAPI的MFC,具有可視化的編程界面。對於TC等的作品也具有向下兼容的特點,建議讀者選用作為C語言過渡到Windows平台編程的首選工具。當然,作為學習,該系統顯得有點龐大,不過通過入門的學習,調試舊的Tc程序也可以。還有其他的編譯器,例如Win tc、gcc、lcc、BC 3.1等等,事實上,編譯器的選擇不是最重要的,他們都可以完成基本的C語言編譯,不過面向考試的時候,還是根據考試的要求,因為編譯器的編譯結果存在著一定的差別,特別在一些復雜語法的語句編譯上。從目前的形勢看,對於從未學習過計算機程序設計的讀者來說,學習C語言時,建議開始選擇Tc2.0,雖然不能使用滑鼠,但幾個快捷鍵的熟練運用基本上可以解決操作的問題,當然有時間的時候了解使用TC3.0就更好了;對於學習過TC2.0的讀者來說,平時完全可以在TC3.0或VC 6.0下調試程序,但考試的時候如果要求必須在TC2.0下,那最好上機練習時在TC2.0下。當然,使用如記事本等文本編輯器編輯程序,然後用TC來調試也不失為一種好方法。另外,DOS平台的Tc2.0或Tc3.0都存在某些機器運行時鍵盤響應遲緩或停頓的問題,Tc3.0可能這種現象要多一點,這主要是由DOS基本內存的不足造成的。可以安裝水平考試課題組提供的DOS模擬器來解決問題,該模擬器重新劃分更多的內存,效果不錯。
新的類似軟體平台也需要讀者關注,那就是java和Viusal C#,因為從發展的眼光來看,目前軟體設計平台有一定的趨同趨勢。例如:java和C#,都來自於C和C++,都作了不錯的擴展和優化。對於深入學習C語言的同學,未來幾年請務必學習VisualStudio.Net或者Java,因為這二者代表了現在的軟體設計主流。他們的主要特點是:優秀的IDE設計環境,強大的WEB服務設計功能,對C++的優化和擴充,基於虛擬機的運行模式,優秀的面向系統開發,可視化的較為成熟的面向對象的程序設計機制等等.
『捌』 如何編譯並運行C語言程序
1、創建一個文件名為main.c,然後用任意一個款你熟悉的文本編輯軟體,比如說記事本,在裡面輸入下面的代碼,記住,要用文本文件編輯軟體,不能用word的。
(8)c選擇編譯擴展閱讀:
c語言小游戲實現原理
1、二維數組實現棋盤
二維數組,用兩個for 循環,隨便輸出一個固定符號做棋盤,如 *
2、判定玩家
設計一個計步變數step, 每走一步 step++, 則玩家=step%2+1;
3、判定輸贏(重點)
設計方向數組 dircX[4] ,dircY[4],因為如果要判斷是否練成五子,只有1豎著2橫著3斜下4斜上
豎著的話就是 x-1,y不變
橫著的話就是x不變,y+1; 斜下: x+1,y+1; 斜上 x-1;y+1
這樣你就可以賦值dircX={-1,0,1,-1} dercY={0,1,1,1}
每當玩家落下一子,就全局判斷每個子的四個方向有沒有第二子,如果有,循環判斷有沒有第三子(利用 x+=dircX[1]),直到五子完成,結束。
『玖』 怎樣用c語言編譯
C編譯的整個過程很復雜,大致可以分為以下四個階段:
預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。
編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。
匯編階段將匯編語言翻譯成機器指令。
鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。
『拾』 c 如何編譯
編譯,編譯程序讀取源程序(字元流),對之進行詞法和語法的分析,將高級語言指令轉換為功能等效的匯編代碼,再由匯編程序轉換為機器語言,並且按照操作系統對可執行文件格式的要求鏈接生成可執行程序。
C源程序頭文件-->預編譯處理(cpp)-->編譯程序本身-->優化程序-->匯編程序-->鏈接程序-->可執行文件
1.編譯預處理
讀取c源程序,對其中的偽指令(以#開頭的指令)和特殊符號進行處理
[析] 偽指令主要包括以下四個方面
(1)宏定義指令,如#define Name TokenString,#undef等。對於前一個偽指令,預編譯所要做的是將程序中的所有Name用TokenString替換,但作為字元串常量的Name則不被替換。對於後者,則將取消對某個宏的定義,使以後該串的出現不再被替換。
(2)條件編譯指令,如#ifdef,#ifndef,#else,#elif,#endif,等等。這些偽指令的引入使得程序員可以通過定義不同的宏來決定編譯程序對哪些代碼進行處理。預編譯程序將根據有關的文件,將那些不必要的代碼過濾掉
(3)頭文件包含指令,如#include "FileName"或者#include <FileName>等。在頭文件中一般用偽指令#define定義了大量的宏(最常見的是字元常量),同時包含有各種外部符號的聲明。採用頭文件的目的主要是為了使某些定義可以供多個不同的C源程序使用。因為在需要用到這些定義的C源程序中,只需加上一條#include語句即可,而不必再在此文件中將這些定義重復一遍。預編譯程序將把頭文件中的定義統統都加入到它所產生的輸出文件中,以供編譯程序對之進行處理。
包含到c源程序中的頭文件可以是系統提供的,這些頭文件一般被放在/usr/include目錄下。在程序中#include它們要使用尖括弧(<>)。另外開發人員也可以定義自己的頭文件,這些文件一般與c源程序放在同一目錄下,此時在#include中要用雙引號("")。
(4)特殊符號,預編譯程序可以識別一些特殊的符號。例如在源程序中出現的LINE標識將被解釋為當前行號(十進制數),FILE則被解釋為當前被編譯的C源程序的名稱。預編譯程序對於在源程序中出現的這些串將用合適的值進行替換。
預編譯程序所完成的基本上是對源程序的「替代」工作。經過此種替代,生成一個沒有宏定義、沒有條件編譯指令、沒有特殊符號的輸出文件。這個文件的含義同沒有經過預處理的源文件是相同的,但內容有所不同。下一步,此輸出文件將作為編譯程序的輸出而被翻譯成為機器指令。
2.編譯階段
經過預編譯得到的輸出文件中,將只有常量。如數字、字元串、變數的定義,以及C語言的關鍵字,如main,if,else,for,while,{,},+,-,*,\,等等。預編譯程序所要作得工作就是通過詞法分析和語法分析,在確認所有的指令都符合語法規則之後,將其翻譯成等價的中間代碼表示或匯編代碼。
3.優化階段
優化處理是編譯系統中一項比較艱深的技術。它涉及到的問題不僅同編譯技術本身有關,而且同機器的硬體環境也有很大的關系。優化一部分是對中間代碼的優化。這種優化不依賴於具體的計算機。另一種優化則主要針對目標代碼的生成而進行的。上圖中,我們將優化階段放在編譯程序的後面,這是一種比較籠統的表示。
對於前一種優化,主要的工作是刪除公共表達式、循環優化(代碼外提、強度削弱、變換循環控制條件、已知量的合並等)、復寫傳播,以及無用賦值的刪除,等等。
後一種類型的優化同機器的硬體結構密切相關,最主要的是考慮是如何充分利用機器的各個硬體寄存器存放的有關變數的值,以減少對於內存的訪問次數。另外,如何根據機器硬體執行指令的特點(如流水線、RISC、CISC、VLIW等)而對指令進行一些調整使目標代碼比較短,執行的效率比較高,也是一個重要的研究課題。
經過優化得到的匯編代碼必須經過匯編程序的匯編轉換成相應的機器指令,方可能被機器執行。
4.匯編過程
匯編過程實際上指把匯編語言代碼翻譯成目標機器指令的過程。對於被翻譯系統處理的每一個C語言源程序,都將最終經過這一處理而得到相應的目標文件。目標文件中所存放的也就是與源程序等效的目標的機器語言代碼。
目標文件由段組成。通常一個目標文件中至少有兩個段:
代碼段 該段中所包含的主要是程序的指令。該段一般是可讀和可執行的,但一般卻不可寫。
數據段 主要存放程序中要用到的各種全局變數或靜態的數據。一般數據段都是可讀,可寫,可執行的。
匯編程序生成的實際上是第一種類型的目標文件。對於後兩種還需要其他的一些處理方能得到,這個就是鏈接程序的工作了。
5.鏈接程序
由匯編程序生成的目標文件並不能立即就被執行,其中可能還有許多沒有解決的問題。例如,某個源文件中的函數可能引用了另一個源文件中定義的某個符號(如變數或者函數調用等);在程序中可能調用了某個庫文件中的函數,等等。所有的這些問題,都需要經鏈接程序的處理方能得以解決。
鏈接程序的主要工作就是將有關的目標文件彼此相連接,也即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的這些目標文件成為一個能夠誒操作系統裝入執行的統一整體。
根據開發人員指定的同庫函數的鏈接方式的不同,鏈接處理可分為兩種:
(1)靜態鏈接在這種鏈接方式下,函數的代碼將從其所在地靜態鏈接庫中被拷貝到最終的可執行程序中。這樣該程序在被執行時這些代碼將被裝入到該進程的虛擬地址空間中。靜態鏈接庫實際上是一個目標文件的集合,其中的每個文件含有庫中的一個或者一組相關函數的代碼。
(2)動態鏈接在此種方式下,函數的代碼被放到稱作是動態鏈接庫或共享對象的某個目標文件中。鏈接程序此時所作的只是在最終的可執行程序中記錄下共享對象的名字以及其它少量的登記信息。在此可執行文件被執行時,動態鏈接庫的全部內容將被映射到運行時相應進程的虛地址空間。動態鏈接程序將根據可執行程序中記錄的信息找到相應的函數代碼。
對於可執行文件中的函數調用,可分別採用動態鏈接或靜態鏈接的方法。使用動態鏈接能夠使最終的可執行文件比較短小,並且當共享對象被多個進程使用時能節約一些內存,因為在內存中只需要保存一份此共享對象的代碼。但並不是使用動態鏈接就一定比使用靜態鏈接要優越。在某些情況下動態鏈接可能帶來一些性能上損害。
經過上述五個過程,C源程序就最終被轉換成可執行文件了。預設情況下這個可執行文件的名字被命名為a.out