Myr*_*ria 17 c++ program-entry-point extern linkage
作为一个低级程序员,我经常使用可执行文件的模块启动代码,所以我很清楚像"crt0"这样的代码是如何工作的.当编写C++代码,我通常声明main为extern "C"以匹配C启动代码会做打电话main.因此我通常使用此声明main(wmain如果专门针对Windows):
extern "C" int main(int argv, const char *const *argv)
extern "C" int __cdecl wmain(int argv, const wchar_t *const *argv)
Run Code Online (Sandbox Code Playgroud)
它是合法使用extern "C"的main?此外,const char *const *argv的类型是合法的,而不是char *[]?
链接是实现定义的(3.6.1p3):
main的链接(3.5)是实现定义的.
另外,对于你的后一个问题,这是完全可以接受的const char* const*(3.6.1p2):
实现不应预定义主函数.此功能不应过载.它应该具有int类型的返回类型,否则其类型是实现定义的.
| 归档时间: |
|
| 查看次数: |
2699 次 |
| 最近记录: |