今天看到一段代码有些费解,如下:
#ifdef __cplusplus
extern "c " {
#endif
…………
…………
#ifdef __cplusplus
}
#endif
网上查了资料了解到#ifdef __cplusplus 就是判断是不是用c 语言写的.__cplusplus标示符用来判断程序是用c还是c 编译程序编译的.当编译c 程序时,这个标示符会被定义,编译c程序时,不会定义.另外__cplusplus是c 默认的宏定义,而__stdc__是c默认的宏定义.
如果整个程序是用c 写的,那么就要包含extern "c" {} 因为在c 里面写c要加上那个说明一下.
另外在参考一个程序代码时发现:在一个c文件(*.c)里,定义了一些public/private函数刚到很疑惑,如下:
public void a()
{
.....
}
private int b()
{
...
}
上网查了资料后了解到public和private在c语言当中其是这样使用的:
/* 函数类型 */
#define public /* public is the opposite of private */
#define private static /* private x limits the scope of x */
public int demo()
{
}
这样,当你声明public的时候,全局都可以用,声明private的时候,只能在当前文件里使用,并且把你认为相关的东西,可以作为一个类使用的,放在一个文件里.
阅读(3496) | 评论(0) | 转发(1) |