在C语言的头文件中怎么声明public方法和private方法

wshyhai 2009-05-11 10:54:13
在C语言的头文件中怎么声明public方法和private方法

在C++中能声明,C语言中使用private说语法不对,望各位兄弟指点一下。
...全文
6224 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
猪头小哥 2012-05-03
  • 打赏
  • 举报
回复 1
那还不如就用static呢。
[Quote=引用 16 楼 的回复:]

可以啊
C/C++ code

#define PUBLIC
#define PRIVATE static

这样,当你声明的public的时候,全局都可以用,声明private的时候,只能当前文件里使用,并且把你认为相关的东西,可以作为一个类使用的,放在一个文件里
记住,没有什么C语言C++的,面向对象,归根结底,是一种思想,用汇编也能写出来

郁闷,我好不容易顶个贴,装一下,……
[/Quote]
hesta37 2012-05-03
  • 打赏
  • 举报
回复
有用,学习了……记录一笔!
modicum_lf 2011-10-10
  • 打赏
  • 举报
回复

static 限定变量的作用域! 楼主想表达的是这个意思么 !
  • 打赏
  • 举报
回复
呵呵,不错学习
ForestDB 2009-07-15
  • 打赏
  • 举报
回复 1
能有public,private的那是C++,不是C。
ies_sweet 2009-07-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 windowsxp0925 的回复:]
给你概念,希望能对你有用:

什么是public,就是希望别人知道的东西
什么是private,就是不希望别人知道的东西

c++中
// head file
class a:
{
public:
class a1 m_a1;
private:
class a2 m_a2;
};

c中:
// head file
struct b
{
struct b1 m_b1;
void* b2;
};

//source file
你知道如何使用b2就行了,对别人来说,别人只知道b2是一个void*的指针,但如何使用别人不知道,…
[/Quote]

genganpeng 2009-07-15
  • 打赏
  • 举报
回复 1
C是面向过程的语言,public和private是面向对象中才有的,如C++,C#,JAVA
jackyloncoln 2009-07-15
  • 打赏
  • 举报
回复
C++中支持类,C中没有。
px348402717 2009-07-15
  • 打赏
  • 举报
回复
在C语言当中其是这样使用的
/* 函数类型 */
#define PUBLIC /* PUBLIC is the opposite of PRIVATE */
#define PRIVATE static /* PRIVATE x limits the scope of x */

PUBLIC int Demo()
{

}
akcw007 2009-07-15
  • 打赏
  • 举报
回复
可以啊

#define PUBLIC
#define PRIVATE static

这样,当你声明的public的时候,全局都可以用,声明private的时候,只能当前文件里使用,并且把你认为相关的东西,可以作为一个类使用的,放在一个文件里
记住,没有什么C语言C++的,面向对象,归根结底,是一种思想,用汇编也能写出来

郁闷,我好不容易顶个贴,装一下,结果前面已经有给发答案的了
quzhongsan 2009-07-15
  • 打赏
  • 举报
回复
public和private是c++里的

c语言中定义一个结构体,里面成员默认都是公有(public)的,但是c中不存在public这个关键字
foxyz123 2009-05-11
  • 打赏
  • 举报
回复
public和private都是C++才有的,C里面没有这样的概念,当然不行啦,你要分清C和C++的区别
dfsb 2009-05-11
  • 打赏
  • 举报
回复
如果是public,在头文件中声明;
如果是private,不要在头文件中声明,在.C文件中定义的时候,加上static,
这样别的文件就看不见这个函数,类似于private
allen1986 2009-05-11
  • 打赏
  • 举报
回复
那两个是C++中的关键字,C中没这两个关键字。在C++中,成员默认的为private,也就是默认的是私有的,简单说就是在C++类中,我不做申明的情况下,成员为私有,如:
class Demo
{
int a; //a为私有
public:
int b; //b为共有
private:
int c; //c为私有
}

在C中,我们一般是用结构体对成员进行封装,结构体默认的为共有的,而且结构体的成员都是采用默认的形式,也就是说它里面的成员都是公有的。
struct Demo
{
int a; // a为共有的。
}
C++和C的区别主要一点就是C++的类可以封状函数,而C只能封状数据成员。但也有一种做法让C也能对函数进行伪封状,那就是采用虚表机制。简单的说,我可以在struct 里面包含函数指针:
struct Demo
{
int a; // a为共有的。
void (*pfn)(void); //同样为共有的。
}
}
liuxu2559 2009-05-11
  • 打赏
  • 举报
回复
#define public
#define private static
不知道是否满足要求.
windowsxp0925 2009-05-11
  • 打赏
  • 举报
回复
给你概念,希望能对你有用:

什么是public,就是希望别人知道的东西
什么是private,就是不希望别人知道的东西

c++中
// head file
class a:
{
public:
class a1 m_a1;
private:
class a2 m_a2;
};

c中:
// head file
struct b
{
struct b1 m_b1;
void* b2;
};

//source file
你知道如何使用b2就行了,对别人来说,别人只知道b2是一个void*的指针,但如何使用别人不知道,就构成了一种c中的伪私用假象。

zhanghuayi_xiyou 2009-05-11
  • 打赏
  • 举报
回复
c中没有public,private的概念,这是面向对象的内容
wuruogeng 2009-05-11
  • 打赏
  • 举报
回复
C当中是没有Private关键字的。一般的函数或者全局变量都可以认为是Public型,在别的文件中extern以下,就可以调用。
public与Private都是相对来说的。如果你指的是在一个文件中的全局变量或者是函数如何定义成Private的话,你可以使用static关键字来修饰全局变量或者函数。这样,修饰过的变量就不可被别的文件引用了。
沙漠里的海豚 2009-05-11
  • 打赏
  • 举报
回复

c++里面才有public和private的概念,主要是为了设定所定义的函数或变量的作用域

在C里面不存在这两个概念,但是可以用static关键字来限定所定义函数或变量的作用域

在一个文件中用static关键字定义的函数或变量只能在这个文件中使用,不能被其他文件所使用

但是如果要真正意义上实现c++中public和private的功能,则需要好好学习一下c++的实现才可以了呵呵
spob110 2009-05-11
  • 打赏
  • 举报
回复
C:
struct A{
};
public和private都是面向对象中的

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧