gpt4 book ai didi

c++ - 为什么 main 没有定义 `main(std::vector args)` ?

转载 作者:IT老高 更新时间:2023-10-28 22:32:16 26 4
gpt4 key购买 nike

这个问题只是半开玩笑。我有时梦想一个没有裸数组或 c 字符串的世界。

如果您使用的是 c++,那么 main 的首选定义不应该是这样的:

int main(std::vector<std::string> args)

?

main的定义已经有多种选择,为什么没有一个C++精神的版本呢?

最佳答案

因为 C++ 被设计为(几乎)向后兼容 C 代码。

在某些情况下,C 代码会在 C++ 编译器中中断,但这种情况相当罕见,而且通常有充分的理由说明为什么需要这种中断。

但是更改 main 的签名虽然对我们来说很方便,但并不是必需。对于从 C 移植代码的人来说,这只是您必须更改的另一件事,没有特别的收获。

另一个原因是 std::vector是一个库,而不是核心语言的一部分。因此,您必须 #include <vector>每个 C++ 程序中。

当然,在早期,C++ 没有 vector 。所以当 vector 被添加到语言中时,当然,他们可能已经改变了main的签名。 ,但是他们不仅会破坏 C 代码,还会破坏所有现有的 C++ 程序。

值得吗?

关于c++ - 为什么 main 没有定义 `main(std::vector<std::string> args)` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3478046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com