什么是C中的"保护变量"?它是如何工作的?

Ara*_*orn 3 c

在C++中,我们有抽象和数据隐藏.我们能通过C实现这一目标吗?

Pat*_*ick 6

在.C文件中定义结构,并且只在标头中"转发声明"结构.

所以你的.C文件可能包含这个:

struct Car
   {
   char *brand;
   int   maxspeed;
   };
Run Code Online (Sandbox Code Playgroud)

你的.H文件可能包含这个:

typedef struct Car *CarHandle;
Run Code Online (Sandbox Code Playgroud)

然后编写函数来操作Car(setter,getters,...)并将它们放在与定义struct相同的.C文件中.当然,函数原型应放在标题中.

现在调用者可以使用CarHandle和CarHandle上运行的函数,但是从不会看到Car结构中的内容.