導航:首頁 > 源碼編譯 > c語言中的用法和編譯器有關系嗎

c語言中的用法和編譯器有關系嗎

發布時間:2022-04-23 07:57:46

⑴ C語言中的//注釋風格與編譯器是否有關

無關的,每種語言有不同修飾風格,同一語言在不同編輯器上修釋都一樣。如果在不同編輯器上注釋方法不同,假如在vc
上和vs上不同,那麼把在vc
上寫的程序在vs
上編譯就會出錯,可事實呢
?

⑵ 為什麼c語言的編譯器可以用c語言來寫

所謂C語言編譯器,就是把編程得到的文件,比如.c,.h的文件,進行讀取,並對內容進行分析,按照C語言的規則,將其轉換成系統可以執行的二進制文件。
其本質在於對文件的讀入,分析,及處理。這些操作,C語言都是可以實現的。
所以用C語言來做C語言的編譯器是完全可行的。

但是,歷史上的第一個C語言編譯器,肯定不是C語言寫的,因為在沒有編譯器時,無法把C語言轉換成可執行文件。
只要有了第一版其它語言的編譯器,就可以用C語言寫編譯器了。
事實上,目前大多數的C語言編譯器,都是用C語言寫的。

⑶ 是不是只要設定語法和對應的編譯器就可以創造屬於自己的語言,我在學c語言突然想問問我的想法對不對

C語言需要編譯器編譯成匯編碼,你要自創語言,就要自己寫編譯器,其實原理也挺簡單,無非就是正則匹配,匹配到指定語句,然後解釋該字元串,生成對應匯編碼,不過一個完善的語法就比較麻煩,牽扯到文件導入,文件連接等等非常復雜。。。。一個簡單的變異比如匹配到 c=a+b,無非就是&a處的數據導入CUP的A寄存器(指令是mov),&b處的數據導入CPU的D寄存器,然後執行加法指令add eax,edx,然後 再把答案(在eax中)送到&c的位置。。。。
高級語言都是先編譯成匯編,然後匯編編譯機器碼,匯編變機器碼這一部你就不用管了,用個正確的匯編編譯器即可,你要發明自己的語言是實現你的語法到匯編的解釋過程。。。。

⑷ C語言的編譯器和普通應用程序有什麼區別嗎

當然有區別啊,運行方式也不一樣。
考慮到你可能不是從事開發工作的人,我就不用專業術語解釋了,解釋如下:

編譯器:將使用開發語言,人工書寫的邏輯、函數等,俗稱「代碼」,翻譯成機器能理解的語言,機器只能理解二進制語言,即:0和1。比如:125這個數字在計算機中存儲就是「01111101」。具體換算方法要參照計算機書籍中了。

普通應用程序:是使用開發語言,人工書寫的邏輯、函數等,俗稱「代碼」,通過編譯器翻譯成機器能理解的語言之後,再進行封裝打包成:例如exe文件之類的可執行文件,讓計算機通過自己的方式顯示出來並與用戶進行交互。

它們之間最大的區別的,就是:
編譯器可以直接與「用戶開發的代碼」和「計算機」進行數據交互的;
普通應用程序相當於是通過編譯器和計算機進行數據交互。

⑸ 每個編譯器都不一樣么 c語言一般用什麼編譯器 每次一種編譯器不能編譯 另一種卻能編譯出

編譯器就是c語言編譯成二進制的東西,
不同的編譯器是不同的,
比如16位系統和32位系統的編譯器就不同,因為16位的認為int是2位元組,32位的則認為是4個位元組。
另外
linux上的編譯器跟windows下的編譯器也不同,linux上的認為內核空間佔1G,而windows下則認為佔2G,
此外兩個系統對環境變數以及其他的設置也不同所以編譯器更不能用。
而且不同的CPU的指令集時不同的,所以同樣int
a
=1
最後被編譯成的二進制代碼也是不同的。
C語言的編譯器有很多,windows下的編譯器也有很多,不同的編譯器可能會做一些不同的優化,linux下的gcc也可以添加選項讓他編譯windows下運行的程序。
main(int
argc,char*argv[


argc
是你的參數個數
argv是你的參數。
比如你最終程序叫
add
那麼
你在命令行執行add
1
2
那麼argc
=3
第一個參數使你的add,
第二個第三個就是
1
2,
在函數內部你就可以獲取這倆參數進行相加然後列印
visual
是個IDE,集成開發環境,已經集成好了windows下使用的編譯器連接器
等,
編寫代碼完成後直接點擊編譯就行了。
IDE的默認編譯器是可以更改的,不同的IDE設置不同。

⑹ C語言數據類型所佔位元組是和運行的機器位數有關還是編譯器有關

1)C語言一般指的是ANSI C的標准,對應的處理器分別是32位和64位的。
2)類型分為內置類型和自定義類型(非內置類型)
內置類型指的是無需聲明就可使用的類型,比如char,double,int等。
自定義類型指的是使用前必須聲明的,如struct StructName{};結構類型,int a[5];數組類型以及enum Color{};枚舉類型等。未經聲明的類型不可使用
3)ANSI C只對內置類型的大小進行了規范:
char |double| folat |int |long int| pointer
64bits 1 8 4 4 8 8
32bits 1 8 4 4 4 4
從上表可以看出,對於前三者,大小是統一的,只有long int 和pointer(指針)在不同的機器上佔用了不同的大小。他們的規則是,long int和pointer的大小等於機器位長(8位一個位元組).最後說明一點,unsigned的關鍵字和類型組合和該類型的大小相同,因為有符號和無符號只對編譯器有效,機器對他一無所知。

⑺ c語言在不同系統中有區別嗎,在哪,還有人說什麼編譯器不同,到底是系統原因還是編譯器

在不同的系統中C語言沒有區別,有區別的是不同的編譯器編譯後的機器碼不同,就是說函數的C語言的底層實現可能不同,但是C語言的函數作用相同。與系統的關系也一樣,系統不同實現方法不同,但是作用相同。
使用不同的編譯器,不同的系統,程序運行結果是相同的

⑻ C語言和c語言編譯系統有什麼區別兩者是包含關系嗎

無區別,只不過編譯器不一樣罷了。因為不同的cpu構架有不同的指令集。而嵌入式基本使用RISC結構的cpu,需要使用pc上的cpu編譯出在能嵌入式cpu上運行的二進製程序。這叫交叉編譯。pc上的程序不可以直接在其他cpu上運行,需要重新編譯。 因為編譯器不一樣,執行的c語言標准就跟編譯器相關。 管理內存映射,設置中斷系統等在pc上也有,不是嵌入式的專利。 只是做嵌入式里的界面、網路、文件編程的話,跟pc上幾乎沒有差別,因為有操作系統罩著。如果開發驅動程序,就要求你對所使用的cpu和板子的結構很了解,也就是看得懂硬體手冊即可。 另外嵌入式環境同pc的差別 如cpu位數、硬體資源緊缺等是需要程序員考慮的

⑼ C語言中,運算符的優先順序和結合方向與編譯工具有關嗎在不同編譯工具下是如何處理的呢

首先優先順序和結合性與編譯器本身無關,只和標准有關

其次,你這里的問題和優先順序以及結合性無關,這是求值順序問題,而C語言中沒有規定求值順序,故實際上是無解的

http://bbs.csdn.net/topics/370153775

閱讀全文

與c語言中的用法和編譯器有關系嗎相關的資料

熱點內容
朱有鵬單片機和物聯網有什麼關系 瀏覽:35
交叉編譯的意思是 瀏覽:618
壓縮編制 瀏覽:876
dmu裝配路徑命令 瀏覽:917
重生相逢漫畫免費在哪個app 瀏覽:699
小保養用什麼app 瀏覽:447
阿里雲伺服器能定位地址 瀏覽:265
方舟命令行工具 瀏覽:317
java多線程傳輸文件 瀏覽:482
無厘頭程序員漫畫 瀏覽:632
macd從入門到精通pdf 瀏覽:867
程序員回北京老家 瀏覽:325
藏族pdf 瀏覽:657
矩形密封圈壓縮量 瀏覽:593
電腦設置ntp時間同步伺服器地址 瀏覽:20
怎麼更有效招聘對日程序員 瀏覽:149
命令號角 瀏覽:275
格力雙轉子壓縮機 瀏覽:614
hp伺服器上的ip地址 瀏覽:562
c語言編程計算100以內的所有素數 瀏覽:625