#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello Qt!");
label->show();
return app.exec();
}
我用这个代码生成可执行文件后点击打开它,main函数的形参是多少?
int main(int argc, char *argv[])
QApplication app(argc, argv);//这两行我不懂得什么意思,请指点.
------最佳解决方案--------------------
QApplication 相当于QT GUI线程的入口
每个QT只有一个GUI线程 就是main里的
如果你不传其他的参数
main的实参就是你默认的函数程序名 你可以把main里的argc 和argv打出来了
由于界面设计到和OS的一些交互
如 你点击界面 事件是传给OS的 而os也需要根据你的界面来刷新
这些都是需要在一个“死循环”里进行处理的 return app.exec(); 就相当于这个死循环
------其他解决方案--------------------
main函数执行之前,主要就是初始化系统相关资源:
1.设置栈指针
2.初始化static静态和global全局变量,即data段的内容
3.将未初始化部分的赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL,等等,即.bss段的内容
4.运行全局构造器,估计是C++中构造函数之类的吧
5.将main函数的参数,argc,argv等传递给main函数,然后才真正运行main函数
当一个C/C++的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件,这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。对main()函数既然不能由其它函数调用和传递参数,就只能由系统在启动运行时传递参数了.
这个知识比较深奥了,你可以百度搜索点资料.main函数是程序的入口.在程序里我们是不可能调用main函数的,main函数的参数是由程序启动时,比如你传入了命令行参数,那么这个时候系统就把参数传递给main函数了,其他情况下我们是无法调用main函数的,他只是我们所有代码的一个入口.
------其他解决方案--------------------
int main(int argc, char *argv[])//定义main函数,传入的参数有2,1为int型的argc,1为char型的argv数组;
QApplication app(argc, argv);//定义并初始化app方法,传入参数argc和argv
------其他解决方案--------------------
但我明明没有给main传参 为什么它自己就有了?