如何通过typedef struct实现数据封装

avatar
作者
筋斗云
阅读量:0

在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的结构体类型,它包含两个成员变量:ageheight。然后,我们为这个结构体类型定义了四个访问函数(getter)和修改函数(setter),分别用于获取和设置ageheight的值。最后,在main函数中,我们创建了一个Person对象,并使用这些函数来访问和修改它的属性。

通过这种方式,我们可以将Person对象的内部实现细节隐藏起来,只暴露出有限的接口供外部访问。这就是数据封装的基本思想。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!