gpt4 book ai didi

c - 用常量参数定义 main (const int argc, const char * const argv[])?

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:11 29 4
gpt4 key购买 nike

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[])

它是受支持、不受支持还是非法?

最佳答案

在 C 中,main 函数的实现基本上可以支持 任何 类型,因此您的特定实现很可能允许您拥有的各种形式建议的。 (而且确实它似乎允许暴露环境的三参数版本。)但是,实现只是需要接受这两种形式

int main(void)

int main(int, char**)

由于 int(int, const char**)int(int, char**) 不是同一类型,因此您建议的“constified”版本是严格来说不需要支持,属于第一条规则。但是,很可能 可以工作,因为 char*const char* 就 ABI 而言以相同的方式布局,并且您获得的数据无论如何都是可变的。

进一步注意 int f(int)int f(const int)相同相同的原型(prototype),所以没有问题这里是关于参数的顶级限定。

关于c - 用常量参数定义 main (const int argc, const char * const argv[])?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50978463/

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