本篇文章為大家展示了OJ中G++和C++有什么區(qū)別,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!專注中小微企業(yè)官網(wǎng)定制,成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。
首先更正一個(gè)概念,C++是一門計(jì)算機(jī)編程語言,G++不是語言,是一款編譯器中編譯C++程序的命令而已。
那么他們之間的區(qū)別是什么?
在提交題目中的語言選項(xiàng)里,G++和C++都代表編譯的方式。準(zhǔn)確地說,選擇C++的話,意味著你將使用的是最標(biāo)準(zhǔn)的編譯方式,也就是ANSI C++編譯。如果你使用的是G++的話,意味著你將使用GNU項(xiàng)目中最平凡適用人群最多的編譯器(其實(shí)也就是我們熟悉的Code::Blocks的自帶的編譯器,Windows環(huán)境里一般是MinGW下的gcc,Linux中的gcc和前者基本是一個(gè)東西)進(jìn)行編譯。類似的還有選擇C和GCC,前者是標(biāo)準(zhǔn)C編譯器編譯,后者同樣是用gcc來編譯。
oj 中G++和C++區(qū)別
1、輸出double類型時(shí),如果采用G++提交,scanf采用%lf,prinf采用%f,否則會(huì)報(bào)錯(cuò)
2、使用GCC/G++的提醒:
對(duì)于64位整數(shù), long long int 和 __int64 都是支持并且等價(jià)的.但是在讀和寫的時(shí)候只支持scanf("%I64d", ...)和printf("%I64d", ...).不支持"%lld"是因?yàn)镸inGW下的GCC和G++使用的msvcrt.dll動(dòng)態(tài)鏈接庫并不支持C99標(biāo)準(zhǔn). (杭電OJ G++支持"%lld")
根據(jù)ISO C++標(biāo)準(zhǔn),在G++下,main函數(shù)的返回值必須是int,否則將會(huì)導(dǎo)致Compile Error(編譯錯(cuò)誤)的判答
3、G++/GCC使用scanf、printf時(shí)注意引用
補(bǔ)充:
__int64與long long 都是在32位平臺(tái)開始使用的64位整數(shù)的數(shù)據(jù)類型,在存儲(chǔ)方式和使用方式上沒有區(qū)別。
兩者的區(qū)別在于,它們命名的發(fā)起人不同,支持的平臺(tái)不同。long long這個(gè)數(shù)據(jù)類型,是UNIX平臺(tái)發(fā)起并支持的,而__int64是微軟從win95(VC6)開始發(fā)起并支持的,在老的windows開發(fā)平臺(tái)下(如VC6),不識(shí)別long long,而老的UNIX,也不識(shí)別_int64。當(dāng)然,現(xiàn)在比較新的平臺(tái),兩種數(shù)據(jù)格式和相關(guān)的定義、函數(shù)都可以兼容了。
同樣,作為64位整數(shù)的printf輸出格式定義,也是一樣,微軟使用的是%i64d,而UNIX使用的是%lld以及%llu(無符號(hào)64位)等形式。
實(shí)際上,無論哪一種,在實(shí)際效果上沒有不同,只是因?yàn)槎x者和使用環(huán)境造成的支持或不支持的問題。
而ACM中,編譯識(shí)別系統(tǒng)偏向更多的支持微軟系統(tǒng)的定義,因此應(yīng)該使用__int64和%i64d
上述內(nèi)容就是OJ中G++和C++有什么區(qū)別,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。