新聞中心
c語(yǔ)言是如何跨平臺(tái)的?
標(biāo)準(zhǔn)C和標(biāo)準(zhǔn)C++都是源代碼級(jí)跨平臺(tái)的, 也就是說(shuō)你用標(biāo)準(zhǔn)C/C++寫的代碼在windows下編譯后就可以windows下運(yùn)行, 在unix/linux下編譯后就可以在unix/linux下運(yùn)行.

公司主營(yíng)業(yè)務(wù):做網(wǎng)站、網(wǎng)站制作、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出河曲免費(fèi)做網(wǎng)站回饋大家。
跨硬件平臺(tái)是靠編譯器的,比如要輸出一個(gè)字符,C里用printf("C");
硬件平臺(tái)a用中斷A輸出, 硬件b用中斷B輸出, 那么就得有兩個(gè)不同的編譯器, 它們都用不同的方法實(shí)現(xiàn)C的功能
如果僅考慮Windows平臺(tái),不用msvc而去用gcc的理由有哪些?
1、大部分跨平臺(tái)的大型C程序(如ffmpeg)早已完全使用C99標(biāo)準(zhǔn)編寫,而msvc的編譯器CL直到2015年才較好地支持了C99;
2、msvc的側(cè)重點(diǎn)是對(duì)C++標(biāo)準(zhǔn)的支持以及對(duì)Windows SDK的支持,而不是對(duì)C語(yǔ)言的支持。
3、msvc的編譯器很難用于生成和環(huán)境無(wú)關(guān)的代碼,用來(lái)編譯像Bootloader、系統(tǒng)內(nèi)核之類的特殊程序時(shí)會(huì)有麻煩。
4、msvc的編譯器CL的命令行參數(shù)和gcc、clang等幾乎完全不兼容,所有的makefile和其他腳本都必須專門為其做較大改動(dòng)。
5、msvc工具鏈(編譯器、鏈接器、nmake等)的ABI和gnu工具鏈的只有單向兼容,無(wú)法鏈接由gnu工具鏈生成的庫(kù)。
c語(yǔ)言可跨平臺(tái)嗎?
C語(yǔ)言本身是跨平臺(tái)的,但程序不是,如果你的程序只使用C標(biāo)準(zhǔn)的輸入輸出,那么源代碼也是跨平臺(tái)的,只要用對(duì)應(yīng)平臺(tái)的編譯器編譯就可以運(yùn)行,如果你使用了平臺(tái)專有的API,那么就不能跨平臺(tái),比如WINDOWS窗口程序,就調(diào)用了WINDOWS的創(chuàng)建窗口,顯示窗口等API(這些調(diào)用并不一定在你自己的代碼中,比如MFC程序是由你調(diào)用MFC框架代碼然后間接調(diào)用API),linux是沒(méi)有這些API的,所以就無(wú)法編譯運(yùn)行。
mojo能寫windows程序嗎?
是的,Mojo可以用于編寫Windows程序。Mojo是一種跨平臺(tái)的編程語(yǔ)言,它基于C語(yǔ)言,并提供了許多用于開(kāi)發(fā)Windows應(yīng)用程序的功能和庫(kù)。使用Mojo,開(kāi)發(fā)人員可以輕松地創(chuàng)建圖形界面、處理用戶輸入、訪問(wèn)文件系統(tǒng)和網(wǎng)絡(luò)等功能。因此,Mojo是一個(gè)很好的選擇,用于開(kāi)發(fā)Windows平臺(tái)上的應(yīng)用程序。
到此,以上就是小編對(duì)于windows 跨平臺(tái)的問(wèn)題就介紹到這了,希望這4點(diǎn)解答對(duì)大家有用。
文章名稱:c語(yǔ)言是如何跨平臺(tái)的?windows跨平臺(tái)c
轉(zhuǎn)載來(lái)源:http://m.5511xx.com/article/dhjsgse.html


咨詢
建站咨詢
