为什么命令行参数计数变量(传统上argc
) an int
而不是unsigned int
?这有技术原因吗?
当我试图摆脱所有已签名的未签名比较警告时,我总是忽略它,但从来不明白为什么它是这样的。
事实上,最初的 C 语言是这样的:默认任何变量或参数被定义为 int 类型,可能是另一个因素。换句话说,你可以:
main(argc, char* argv[]); /* see remark below... */
而不是
int main(int argc, char *argv[]);
Edit:实际上,正如亚伦提醒我们的那样,最原始的语法应该是这样的
main(argc, argv) char **argv {... }
由于“原型”是后来才推出的。这大约是在每个人至少花费了至少 10 个小时来追踪与类型相关的微妙(以及不那么微妙)的错误之后发生的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)