通常c程序是可以独立运行并完成某项任务的个体。
仅仅c语言,一般没有主程序这种说法。若是vc可能涉及到主程序,一般来说要求有且仅有一个。
毫无疑问,编译好C程序并生成EXE文件后,总要运行。这里有个概念先解释一下:
概念1:运行一个编译好的EXE,其实就是让 *** 作系统(例如Windows系统,或Linux系统等)来调用这个EXE文件中的main函数。
概念2:main函数也是函数,只不过,main函数的是由 *** 作系统调用的。 *** 作系统调用main函数时,可以向main函数传递参数;main函数返回时,也可以向调用者(也就是 *** 作系统)返回一个值
明白了上述两点,就可以解释你的问题了:
1)main( ) 这个是 int main(void)的简写:意思是执行EXE( *** 作系统调用main)时不需要传入参数;main执行完后向 *** 作系统返回一个整型值;
2)void main( ) 是 void main(void)的简写:意思是执行EXE( *** 作系统调用main)时不需要传入参数;main函数执行完后不需要向 *** 作系统返回值(即返回一个void值);
3)int main(void) 与1)相同
更进一步:
如果你的main函数为:
void main(int argc,char *argv[]){
int i
for( i=1 i<argc i++)
printf("%s\n", argv[i])
/* ……*/
return /*返回 *** 作系统*/
}
编译后,假设生成的可执行文件为my.exe。执行这个文件
C:>my.exe apple orang banana
apple
orange
banana
可见,在 *** 作系统调用main时,apple orang banana 作为main函数的参数,传入到main函数中了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)