jle*_*ahy 3 c c++ linker linker-scripts
在C++中,main是否可以通过函数指针定义?例如:
int f(int, char**) {
return 0;
}
int (*main)(int, char**) = &f;
Run Code Online (Sandbox Code Playgroud)
此代码正确编译和链接,但在运行时会触发分段错误.我相信这可能是因为它试图将函数指针的值作为代码执行.
另外,如果在普通的C++中不可能,那么可以通过gcc的非标准功能来实现(可能以某种方式改变导出符号的类型).
最后,如果使用gcc指令无法实现,可以使用自定义链接描述文件吗?
C++标准的第3.6.1/1段说:
"程序应包含一个名为main 的全局函数,它是程序的指定开始"
这使得指针声明非法.
| 归档时间: |
|
| 查看次数: |
796 次 |
| 最近记录: |