C语言的面向对象(lvgl控件面向对象的思想)
前言
C语言是一个面向过程的编程语言,并不提供面向对象的机制,但是C语言也可以按照面向对象的方式编写软件。面向对象的方式编写软件有很大的好处,一是好维护,二是好拓展,本文介绍一种C语言面向对象的写法,这个写法是从LVGL上借鉴的。
一、构建一个类,并创建对象。
首先我在person.h中,定义一个人的结构体类型:Person
typedef struct
{
int age; //年龄
char gender; //性别
char name[20]; //姓名
}Person;
之后我在person.c中,写了如下一些函数,这些函数可以对Person这个类型进行修改和读取,面向对象思想中,对象有属性和方法,属性就是person结构体中的成员,方法就是如下这些函数。此时就完整的构建了一个类:人。
注:这些函数是需要在person.h中声明一下的,别的地方包含这个头文件,就可以使用这个结构体类型,调用这些函数。
int getAge(Person *p)//获取人的年龄
{
return p->age;
}
void setAge(Person *p, int age)//设置人的年龄
{
p->age = age;
}
char getGender(Person *p)//获取人的性别
{
return p->gender;
}
void setGender(Person *p, char gender)