gpt4 book ai didi

c++ - 为什么 argc 是 'int' (而不是 'unsigned int' )?

转载 作者:IT老高 更新时间:2023-10-28 13:20:47 26 4
gpt4 key购买 nike

为什么命令行参数计数变量(传统上是 argc)是 int 而不是 unsigned int?这有技术原因吗?

在尝试摆脱所有已签名的未签名比较警告时,我总是忽略它,但从不明白为什么会这样。

最佳答案

原来的 C 语言在默认情况下任何变量或参数都被定义为 int 类型,这可能是另一个因素。换句话说,您可以:

  main(argc, char* argv[]);  /* see remark below... */

而不是

int main(int argc, char *argv[]);

编辑:实际上,正如 Aaron 提醒我们的那样,最原始的语法应该类似于

  main(argc, argv) char **argv {... } 

因为“原型(prototype)”是后来才引入的。这大约是在每个人都记录了至少 10 个小时来追踪与类型相关的微妙(而不是那么微妙)的错误之后

关于c++ - 为什么 argc 是 'int' (而不是 'unsigned int' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1773897/

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