news 2026/9/3 5:38:33

C语言中隐藏结构体的细节-使用struct结构体封装(定义和声明分离)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言中隐藏结构体的细节-使用struct结构体封装(定义和声明分离)


一、参考
https://www.cnblogs.com/qingergege/p/6882107.html

C Interfaces and Implementations
c实现和封装

https://bbs.huaweicloud.com/blogs/441780


二、设计
1.example.h文件
#ifndef SRC_EXAMPLE_H_
#define SRC_EXAMPLE_H_


typedef struct test_st test_t;
struct test_st;

void init_test(test_t *t);
void free_test(test_t *t);

#endif /* SRC_EXAMPLE_H_ */

2.example.c文件
#include "example.h"
#include "xil_types.h"
//#include "malloc.h"


struct test_st {
int count;
char name[10];
};

struct my_top {
test_t *test_inner;
test_t test_inner1;
}my_top1;


void top(){

init_test(&my_top1.test_inner1);
free_test(&my_top1.test_inner1);

}


void init_test(test_t *t) {
t = malloc(sizeof(test_t));
t->count = 0;
strcpy(t->name, "default");
}

void free_test(test_t *t) {
free(t);
}


3.main.c文件

int main(){
top();

}

三、说明
1.在c语言接口和封装时候,结构体的定义和声明进行隔离
2.隔离的目的是用于结构体内部内容对外不可见,你可以用,但是里面的细节不告知你,做到封装的作用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 23:53:58

在确定性终结的时代:《意义对谈》如何成为新文明的“意义编译器”

在确定性终结的时代:《意义对谈》如何成为新文明的“意义编译器”当气候模型失准、地缘规则失效、技术伦理失语成为新常态,我们迎来的不是一个普通的变革期,而是一个 “确定性终结”的时代。过去赖以导航的所有地图——经济周期理论、国际关系…

作者头像 李华
网站建设 2026/9/2 22:41:07

Breezy Weather安卓版(无广告天气软件)

Breezy Weather安卓版是一款界面简洁美观、功能丰富的开源天气应用程序。它与气象局实时数据同步,能为用户提供准确、实时的天气信息。 软件功能 专业气象数据展示:完整呈现温度、湿度、气压、能见度等15项专业气象指标数据,还能提供每分钟降…

作者头像 李华
网站建设 2026/9/2 23:25:14

7大领域,50道经典题目,助你彻底搞定MySQL面试!

【大长文】7大领域,50道经典题目,助你彻底搞定MySQL面试! 开发人员必备的9大MySQL索引和查询优化一般来说,程序员的面试内容分为两部分,一部分与编程相关,另一部分则与数据库相关。而作为数据库中的主流&a…

作者头像 李华
网站建设 2026/9/3 5:36:25

对话本体论:碳硅共生与RAE引擎的存在论根源

对话本体论:碳硅共生与RAE引擎的存在论根源作者:方见华本章核心命题:对话先于存在,关系生成主体传统本体论以“实体”为第一性,预设世界由独立、固化、先在的存在者构成——碳基生命是天然主体,硅基机器是被…

作者头像 李华