簡體   English   中英

為什么 'int' 在 C++ 中只用作 int 而為什么不用作 std::int?

[英]Why is 'int' used as just int and why not as std::int in C++?

與當前 C++ 中standard所有內容不同,是否有任何特定理由將intchar 、 ....、 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類型構建的。 如果標准庫依賴於它自己,你就會看到先有雞還是先有蛋的問題。

關鍵字如intreturn以及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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM