概述
/*
一个简单的演示C语言结构体struct的例子。
struct中也可以包含函数成员,通过函数指针的形式。
*/
#include
#include
typedef struct Point
{
double x;
double y;
double (*R)(double x0,double y0);//函数成员,计算到原点的距离;
double (*R2)(struct Point p); //函数成员,计算到原点的距离;
}StructPoint,*pPoint;//声明struct函数体的同时,给其设置别名(alias):
//StructPoint为结构体别名,pPoint为Point*类型别名;
//第二种给struct设置别名的方法;
//typedef struct Point StructPoint;
double DistanceToO(double x, double y)
{
return sqrt(x*x+y*y);
}
double DistanceToO2(StructPoint p)
{
return sqrt(p.x*p.x+p.y*p.y);
}
int main(int argc,char* argv[])
{
StructPoint p0;
p0.x=3;
p0.y=4;
p0.R=DistanceToO; //给对象指定函数
p0.R2=DistanceToO2; //给对象指定函数
printf("p0(%.2f,%.2f) to O:%.2fn",p0.x,p0.y,p0.R(p0.x,p0.y));
printf("Method-2:p0(%.2f,%.2f) to O:%.2fn",p0.x,p0.y,p0.R2(p0));
pPoint pp0=&p0;
printf("pp0(%.2f,%.2f) to O:%.2fn",pp0->x,pp0->y,pp0->R(pp0->x,pp0->y));
//定义struct同时给其赋值
StructPoint p1={6,8,DistanceToO,DistanceToO2};
printf("p1(%.2f,%.2f) to O:%.2fn",p1.x,p1.y,p1.R(p1.x,p1.y));
return 0;
}
最后
以上就是背后哈密瓜为你收集整理的c语言自动分析结构体成员,C语言结构体struct:声明、定义、函数成员的全部内容,希望文章能够帮你解决c语言自动分析结构体成员,C语言结构体struct:声明、定义、函数成员所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复