1,void* 在c语言中的使用,类似于C++的模板类。
2,别的模块没有显式使用的函数、变量等,都应该放在实现文件,定义成static,避免造成命名污染。
3,没有必要的情况下,不可以在头文件中放其他的头文件,容易造成命名污染,难查bug,而且编译也慢。如果有很多的实现文件需要共用一些东西,可以用一个专门的头文件放,也可以放内部的inline函数。
4,在头文件里,一般只放inline函数,
5,用宏,展开时可以很灵活地生成各种代码,
/**
* 此句声明了一个钩子集:两个函数,和一个函数类型
* 1。要求钩子函数统一用此种形式int func(args),成功返回0,失败返回其它值。
* 2。reghook_xx(func)注册到这个钩子函数链末尾,成功返回0,若超过最大钩子数限制则返回-1
* 3。runhook_xx(args)顺序运行这个钩子函数链,全部运行成功返回0,某钩子函数有失败则即时返回其它值
*/
#define DECLARE_HOOK(name, args) /
typedef int hook_##name##_t args; /
int reghook_##name(hook_##name##_t pf); /
int runhook_##name args;
3。更强的用法,请参考php源码,引用少数宏即完成几十个函数的声明、实现………………
#ifdef _cplusplus
extern "C" {
#endif
#ifdef _cplusplus
}
#endif
以后写完程序,先不要运行,在脑子里走三遍再说,否则,浪费时间调试.