gpt4 book ai didi

c - 为什么在头文件中使用 typedef 而不是只在 .c 中做所有事情

转载 作者:行者123 更新时间:2023-12-05 09:00:40 25 4
gpt4 key购买 nike

我在.c 文件中有这样一段代码:

typedef struct stack {
int maxsize;
int top;
int* items;
} stack;

我读过,使用头文件时,最好使用这个:

.h

typedef struct stack stack;

然后做.c

struct stack {
int maxsize;
int top;
int* items;
};

我的问题是,为什么我们不能只在头文件中使用函数声明,而 typedef 的东西,我们都在 c 文件中使用?为什么上面把typedef和struct分离到不同的文件中?

最佳答案

目的是私有(private)封装,这是程序设计时常用的最佳实践。你在这里描述的通常被称为“不透明类型”,因为它使用前向声明的概念来阻止你的结构的用户学习或使用结构的内容。从头文件中看到的结构是一个“不完整类型”,调用者不能声明这种类型的对象,也不能访问其中的任何成员。

有关详细信息,请查看 How to do private encapsulation in C?

关于c - 为什么在头文件中使用 typedef 而不是只在 .c 中做所有事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75248005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com