本篇文章為大家展示了OJ中G++和C++有什么區別,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
首先更正一個概念,C++是一門計算機編程語言,G++不是語言,是一款編譯器中編譯C++程序的命令而已。
那么他們之間的區別是什么?
在提交題目中的語言選項里,G++和C++都代表編譯的方式。準確地說,選擇C++的話,意味著你將使用的是最標準的編譯方式,也就是ANSI C++編譯。如果你使用的是G++的話,意味著你將使用GNU項目中最平凡適用人群最多的編譯器(其實也就是我們熟悉的Code::Blocks的自帶的編譯器,Windows環境里一般是MinGW下的gcc,Linux中的gcc和前者基本是一個東西)進行編譯。類似的還有選擇C和GCC,前者是標準C編譯器編譯,后者同樣是用gcc來編譯。
oj 中G++和C++區別
1、輸出double類型時,如果采用G++提交,scanf采用%lf,prinf采用%f,否則會報錯
2、使用GCC/G++的提醒:
對于64位整數, long long int 和 __int64 都是支持并且等價的.但是在讀和寫的時候只支持scanf("%I64d", ...)和printf("%I64d", ...).不支持"%lld"是因為MinGW下的GCC和G++使用的msvcrt.dll動態鏈接庫并不支持C99標準. (杭電OJ G++支持"%lld")
根據ISO C++標準,在G++下,main函數的返回值必須是int,否則將會導致Compile Error(編譯錯誤)的判答
3、G++/GCC使用scanf、printf時注意引用<stdio.h>,只引用<iostream>不識別 (杭電OJ G++不需要<stdio.h>)
補充:
__int64與long long 都是在32位平臺開始使用的64位整數的數據類型,在存儲方式和使用方式上沒有區別。
兩者的區別在于,它們命名的發起人不同,支持的平臺不同。long long這個數據類型,是UNIX平臺發起并支持的,而__int64是微軟從win95(VC6)開始發起并支持的,在老的windows開發平臺下(如VC6),不識別long long,而老的UNIX,也不識別_int64。當然,現在比較新的平臺,兩種數據格式和相關的定義、函數都可以兼容了。
同樣,作為64位整數的printf輸出格式定義,也是一樣,微軟使用的是%i64d,而UNIX使用的是%lld以及%llu(無符號64位)等形式。
實際上,無論哪一種,在實際效果上沒有不同,只是因為定義者和使用環境造成的支持或不支持的問題。
而ACM中,編譯識別系統偏向更多的支持微軟系統的定義,因此應該使用__int64和%i64d
上述內容就是OJ中G++和C++有什么區別,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。