gpt4 book ai didi

c++ - 在主函数中重命名 argc 和 argv 是否安全?

转载 作者:IT老高 更新时间:2023-10-28 12:01:17 27 4
gpt4 key购买 nike

许多程序对一些参数和字符串数组使用标准名称。 main函数原型(prototype)如下:int main(int argc, char *argv[]);。但是,如果我为这些变量选择自定义名称,我会破坏一些东西吗?

例如int main(int n_of_args, char *args[]);

在编译器的上下文中,一切都很好。这些变量对于 main 函数是局部的,因此它们可以有任何名称。简单的代码可以完美地构建和运行。但是这些名称可能会被预处理器使用。那么重命名这些参数是否安全?

PS 就我个人而言,我觉得这些名字很糟糕,因为它们看起来非常相似,而且只有一个字母不同。但是每个人都出于某种原因使用它们。

最佳答案

是的,它是安全的,只要您使用有效的变量名。它们是局部变量,因此它们的作用域不会超出 main 函数。

来自 C standard 的第 5.1.2.2.1 节:

The function called at program startup is named main. The implementation declares no prototype for this function. It shall be defined with a return type of int and with no parameters:

int main(void) { /*  ... */ }

or with two parameters (referred to here as argc and argv, though any names may be used, as they are local to the function in which they are declared):

int main(int argc, char *argv[]) { /* ...   */ }

or equivalent; or in some other implementation-defined manner

话虽如此,使用 argcargv 以外的任何内容可能会使其他习惯于这些参数的常规名称的人在阅读您的代码时感到困惑。所以最好在清晰度方面犯错。

关于c++ - 在主函数中重命名 argc 和 argv 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36945552/

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