不同編譯器
Ⅰ 為什麼用不同編譯器編譯出來的程序大小差別這么大
你所提問的問題,在Keil自帶的文檔《Cx51編譯器用戶手冊》中都有詳細的介紹。建議你好好閱讀一下這份手冊,將會對編譯過程、編譯原理有深入的了解。
Ⅱ 程序如何自主區分不同編譯器
一般選取編譯器默認的宏
也可以在makefile裡面指定可讀性更好的宏
比如,區分mingw和gcc,就可以用mingw自帶的WIN32來區分
Ⅲ c語言的編譯器為什麼有許多不同的版本並且在不同的編譯器版本下C語言的語法規則也不盡相同
新的版本都是基於舊的版本升級過來的,以此來改善編譯器的性能、增加對新平台的支持以及提高競爭能力。
不同的編譯器支持的標准語法是一致的(不然沒資格稱C編譯器),但是每個編譯器自身可以添加額外的語法、庫來擴展語言的表達能力,這就是所謂的xx編譯器擴展。使用語言擴展通常能獲得較高的性能和靈活性,但是損失了跨平台性。
不僅僅是編譯器有很多版本,語言本身都有很多版本,目前C語言的版本是C11,下一個版本為C1y。
Ⅳ C編譯器問題。不同編譯器中編寫C/C++程序語法是否有不同
for(int i=0;i<10;++i) cout<<i;
cout<<i;
Dev-c++里,是錯的。i的作用域只是for
vc6.0里是對的。
這只是c++的寫法。c里變數聲明必須放在前面,不會有這種情況。
其他的沒用過。
Ⅳ c語言,不同的編譯器會得出不同的結果
應該是2 12 30
這里是典型的宏定義的負效應
S(i++)代換完就是(i++)*(i++)
不管按照什麼次序,比如
i=1, 先算i++返回1,而i的值變成了2,後面一個i++,返回2,則i的值變成了3
以下類推
Ⅵ 兩種不同編譯器調試的結果為什麼有區別
在輸出的參數表中使用強制類型轉換成printf中輸出的格式應該就行了。
不同的類型在地址中的存儲實現不一樣
假設float存儲為 0 0 0000000 0000……
表示正負 表示指數正負 表示指數值 存儲數
double存儲為 0 0 0000000000 0000
表示正負 表示指數正負 表示指數值 存儲數
此時double以float格式輸出時表示指數值的後3位就劃分到存儲數中了,指數值變了,存儲數也可能變了
Ⅶ 每個編程語言都有不同的編譯器嗎
是的,在編程的世界裡面,對於每一種邊緣都需要使用不同的編譯器,因為他們的編碼的形式和規則都是不一樣的,希望可以幫到你
Ⅷ 相同的代碼,不同編譯器下結果不同,究竟哪個是正確的
我覺得可能與代碼有關系,不同編譯器不同的編譯模式是存在差異的,包括浮點運算,代碼優化方面是有不同
Ⅸ 不同操作系統編譯器是否不同
那是一定的!不同操作系統的作業控制方法、進程式控制制手段、指令集等都不可能一致!