用VC6.0的MFC编程,一直对结构体作为函数参数的问题比较头疼,一直回避,今天又遇到了,于是查找资料解决一下心头的疑问,一直用指针来处理结构体,所以对于函数的形参也用指向结构体的指针来传递。
完成目的:初始化结构体数组中的bProcess都为0
1:定义结构体
struct NODE
{
int x;
int y;
int bProcess;
};
NODE node[300]={{},{}......};
2:写处理函数
void setPro(struct NODE (&aa)[300])//在MFC中只需要传递结构体数组的指针而不需要传递数组元素的数量也可以,即:void setPro(struct NODE *aa);
{
for(int i=0;i<300;i++)
{
*(aa+i).bProcess=0;
}
}
3:主函数调用//MFC中是某些响应函数调用
void main()
{
setPro(node);
}
注:MFC中setPro(struct NODE *aa)中的struct不能省,否则出错,原来一直出错都是因为这个
结构体数组可以用指针直接传递给函数,单一的结构体也可以用同样的方法进行传递