[英]Why is 'int' used as just int and why not as std::int in C++?
與當前 C++ 中standard
所有內容不同,是否有任何特定理由將int
、 char
、 ....、 main()
和其他人從其中保留下來。 (不是在談論+
, -
, %
,.. 因為它們不是特定於語言的)
為什么不像:
std::int std::main(std::int argc, std::char *argv[])
{
//Sample C++ code (incorrect with current standards though)
std::return 0;
}
超出標准范圍的標准化不是不完整的嗎?
我相信,它們是編寫程序時隨處可見的基本組件,無論是簡單的還是復雜的。 它們不包含在標准化中,只是為了遵循DRY原則。
std::
是標准庫的命名空間名稱。 但是 C++ 具有內置類型,而且這些類型更為基礎。 事實上,標准庫的重要部分是使用int
類型構建的。 如果標准庫依賴於它自己,你就會看到先有雞還是先有蛋的問題。
關鍵字如int
和return
以及main()
函數都包含在C++ 標准中。 std
並不意味着只有那些東西是標准化的。 相反,它指的是標准庫中的東西(與關鍵字一樣,是標准的一部分)。 使用標准庫需要諸如#include <vector>
類的包含文件,但可以在沒有任何#include
的情況下使用關鍵字。
您提到的類型是關鍵字。 關鍵字不是標識符,因此不能屬於范圍或命名空間。 在程序的解析過程中,關鍵字比標識符更早地被發現。
更改程序入口點的命名空間(當前為::main
)意味着必須更新所有位置的所有鏈接器,因此我懷疑是否會支持這種移動。 它也違背了std
是用於標准庫而不是用於用戶代碼的原則,而用戶編寫了main
的代碼。
據我所知。 Int 是一種原始(主要)數據類型。 主要數據類型已經在編程語言中定義,也稱為原始數據類型或內置數據類型。 “int”數據類型就是其中之一。 在某些語言中,您可以看到一些 byte、short、int、long、char、float、double 或 boolean 關鍵字用作它們本身。
希望我有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.