在C语言中,你可以使用typedef
关键字和struct
来创建一个新的数据类型,从而实现数据封装。数据封装是将数据(属性)和行为(方法)包装在一起的一种技术,它可以隐藏对象的内部实现细节,只暴露有限的接口供外部访问。
下面是一个简单的例子,展示了如何使用typedef struct
实现数据封装:
#include <stdio.h>
// 定义一个结构体类型
typedef struct {
int age;
float height;
} Person;
// 为结构体类型定义一个访问函数(getter)
int get_age(Person *p) {
return p->age;
}
float get_height(Person *p) {
return p->height;
}
// 为结构体类型定义一个修改函数(setter)
void set_age(Person *p, int new_age) {
p->age = new_age;
}
void set_height(Person *p, float new_height) {
p->height = new_height;
}
int main() {
// 创建一个Person对象
Person person;
// 使用setter函数设置对象的属性
set_age(&person, 25);
set_height(&person, 175.5);
// 使用getter函数获取对象的属性
printf("Age: %d\n", get_age(&person));
printf("Height: %.2f\n", get_height(&person));
return 0;
}
在这个例子中,我们首先定义了一个名为Person
的结构体类型,它包含两个成员变量:age
和height
。然后,我们为这个结构体类型定义了四个访问函数(getter)和修改函数(setter),分别用于获取和设置age
和height
的值。最后,在main
函数中,我们创建了一个Person
对象,并使用这些函数来访问和修改它的属性。
通过这种方式,我们可以将Person
对象的内部实现细节隐藏起来,只暴露出有限的接口供外部访问。这就是数据封装的基本思想。