1执行的顺序有先后:构造函数百是类的构造器,在实例化的时候先调用构造函数,初始化函数在构造函数后调用,属于构造后的初始度化。
2功能上:MFC中构造函数用于类的构造比如说CDialoge,一般用于对话框这种控件的创建和初始化。
OnInitDialog()函数是在对话框构造完成之后初始化用的,专一般也用做自定义初始化的函数。确切的说,OnInitDialog()函数是Windows消息WM_INITDIALOG的响应函数。在对话框创建完毕,即将显示出来之前,Windows会向对话框过程发送WM_INITDIALOG消息,OnInitDiglog()函数就是响应这个属消息的消息映射函数。
初始化顾名思义就是初始配置,不同的使用有不同的配置如果只是为了做一个类似点亮一个LED的话,就不用初始化了它并不是程序所必要的你若用了定时器,设置波特率,及中断等,那你就得初始化,当然初始化并不是非要写成一个函数它也可以直接写到main函数的过程中,只是单独放到一个函数中便于阅读程序
三个参数分别为:图形驱动程序,图形模式,驱动程序所在的路径
CGA,CGAC0,就是CGA模式的0模式320x200分辨率
现在已经很少这样用了,可移植性不好,你可以用下面的方法
在TC文件夹下有几个BGI文件这就是驱动文件
>bgiobj egavgabgi(VGA的驱动,其它的相同)
>tlink lib\graphicslib+egavgaobj
这里给你一个初始化函数
void InitGra()
{int gd=DETECT,gm;
registerbgidriver(EGAVGA_driver);
initgraph(&gd,&gm,"");
}
这是初始化VGA的,你可以把CGA的BGI文件转下用CGA的也行
数组是一类数据的集合,利用数组可以实现数据的存储,但 如何实现数组 ?
数组是一种数据结构,需要利用结构体定义数据的类型,对于一个数组,需要知道 数组的首元素的地址、数组长度、数组中的有效个数 。
定义结构体struct Arr,进行结构体变量声明
struct Arr arr;
在这个过程中,声明的结构体变量arr中的3个成员pBase、len、cnt存储的是内存中的垃圾值,需要对其进行初始化,定义初始化函数init_arr()。
需要考虑几个问题
(1) 返回值 。对于初始化,仅需要将结构体中各参数初始化不需要返回值,因此是 void 。
(2) 参数 。初始化函数中需要传入的参数。
首先考虑,如果传入的是结构体变量,相当于是将声明的结构体变量赋值给初始化函数,并不能修改主函数中结构体变量的各个成员的值,不能达到初始化的效果,因此 需要传入的是结构体指针变量 。
然后考虑,数组中的成员并不是不变的,因此初始化中可以 传入数组的长度 。
所以初始化的函数声明如下:
函数定义是指函数需要实现的功能。数组初始化函数对数组分配内存、初始化数组长度以及初始化数组有效元素个数。
为数组分配内存,使用malloc()函数
初始化数组的长度
初始化数组有效个数
但在初始化过程中有可能出现 内存分配失败 的情况,因此采用 if语句进行判断 ,判断 malloc()函数返回值是否为空 ,具体代码如下
欢迎分享,转载请注明来源:表白网
评论列表(0条)