今天看到一段代码有些费解,如下:
#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的时候,只能在当前文件里使用,并且把你认为相关的东西,可以作为一个类使用的,放在一个文件里.
阅读(3505) | 评论(0) | 转发(1) |