最近在敲代码的过程中,突发奇想,产生了一个疑问:
为什么main函数可以任由我们定义:可以接收一个参数、两个参数、三个参数都接接收,或者可以不接收?这是如何实现的
int main(){
retrun 0;
}
int main (int argc){
return 0;
}
int main(int argc, char* args[]) {
return 0;
}
int main(int argc, char* args[],char* envs[]) {
return 0;
}
这几种main函数的定义都是可以的,但是我在vs中调试的时候,发现main函数的上层函数实是这样调用的:
static int __cdecl invoke_main()
{
return main(__argc, __argv, _get_initial_narrow_environment());
}
incoke_main函数中在调用main函数的过程中是有传递参数的,
我也在vs中做了一个相似的实验,发现是不行的,
在闲暇时候,我上往找过一些资料,但是都没有对这个问题的相关解答,我甚至去国外的网站,希望能找到答案,但是得到的解答也是一知半解,也可能是我对问题的关键词把握不对,也可能我没有找到相关资料,
希望有知道的大佬,能解答一下我的疑惑