这些参数有什么用?还有其他方法可以在不使用main参数的情况下运行SDL吗?
int main( int argc, char* args[] )
让我解释。
在通常的程序中,您可以使用以下两种有效形式之一main
:
int main()
int main(int argc, char **argv) // arguments' names do not matter here
它们之间的区别是第二种形式允许您的程序接受命令行参数。
main
相关技巧。
SDL#define main SDL_main
在标头中有某处。
因此,预处理器将替换int main(...)
为int SDL_main(...)
。
实际main()
位于SDL代码中的某个位置。它会进行一些初始化,然后调用您的“ main
”(即SDL_main
)。
实际main()
可能看起来像这样:
extern SDL_main(int, char **);
int main(int argc, char **argv)
{
// SDL initialization
SDL_main(argc, argv);
}
它说明了为什么可以使用int main()
。SDL源没有原型,int SDL_main()
因为C不支持函数重载。只能有一个原型SDL_main
,SDL开发人员决定应该这样做int SDL_main(int, char **)
。
这样做的原因很明显:许多应用程序都需要使用命令行参数。许多程序员习惯于int main(int, char **)
在要读取命令行参数时使用它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句