如标题所示,主函数是否有可能返回一个指针?如果是,那么在哪里有用?谢谢!
问问题
162 次
3 回答
7
只有返回类型 ofint
受到标准的祝福:
5.1.2.2.1 程序启动
1 程序启动时调用的函数名为main。实现没有声明这个函数的原型。它应定义为返回类型为 int 且不带参数:
int main(void) { /* ... */ }
或者带有两个参数(这里称为 argc 和 argv,尽管可以使用任何名称,因为它们是声明它们的函数的局部变量):
int main(int argc, char *argv[]) { /* ... */ }
或等价物;10) 或以其他一些实现定义的方式。
C11 草案,2011 年 4 月 12 日
其他一切都取决于您的编译器,因此不再是 C 问题。
于 2012-06-11T12:19:19.717 回答
4
否。在标准 C 中main()
返回一个int
。此返回值的解释是周围运行时环境的问题。如果您确切地知道自己在做什么,在某种特殊情况下,您知道环境将以某种方式解释值,那么您可以将指针强制转换为 int。但这很讨厌。
并且请注意,在程序退出后,指向动态分配内存的指针(可能)毫无意义!只有返回指向固定地址的指针才有意义,例如某些嵌入式环境中的硬件寄存器。
于 2012-06-11T12:19:10.430 回答
3
完成phresnel的回答,并回答它是否有用:因为每个进程都有自己的地址空间,即使你main()
返回一个整数值作为地址,因为返回的指针只是一致的,所以有什么意义到刚刚退出的进程的地址空间...
于 2012-06-11T12:30:51.247 回答