【发布时间】:2018-12-01 08:56:09
【问题描述】:
在glibc 中,main 被记录为任一,
int main (int argc, char *argv[])
或者,
int main (int argc, char *argv[], char *envp[])
如果您不想更改所有参数,是否可以将它们定义为 const?
int main (const int argc, const char * const argv[])
它是受支持、不受支持还是非法的?
【问题讨论】:
-
请注意,函数参数类型的顶级限定符不是函数声明的一部分,因此至少部分问题不相关。
-
@KerrekSB 并非无关紧要,因为我不知道这一点。问题定义明确,如果它们不是函数声明答案的一部分,我会接受。当参数未声明为常量并且您向它们发送常量指针时,我会收到 typedef 错误,所以我认为这是打字的一部分。
-
别误会我的意思,顶级常量仍然很重要。只是不是为了原型设计,因此你可以如何定义
main。此外,“const char*”中的 const 不是顶级的,而且非常重要。 -
您只是好奇还是想解决问题?
标签: c arguments constants main