专业的C/C++头文件写法
(2011-06-28 14:48:30) 做到专业,应该是每个职业程序员应该要求自己做到的。 1.License Agreement 2.guard define #endif #ifdef __cplusplus 3.尽量不要在头文件中暴露数据结构 这样可以用户对你的实现的依赖,也减少了用户的编译时间 typedef struct lua_State lua_State; 可以看到虽然用户会一直使用lua_State,但是并不知道lua_State的结构是什么 从一个使用lua的例子程序可以看出: #include "lua.h" int main(int argc, char *argv[]) 4.函数声明前加XXX_API已利于拓展 Lua的例子 #ifndef LUA_API #define LUA_API extern #endif LUA_API lua_State *lua_open (void); 如果定义了LUA_API就是给LUA内部使用的 如果没定义LUA_API就是for user 的 写Window dll程序经常会用到 #ifdef DLLTEST_EXPORTS #define DLLTEST_API __declspec(dllexport) #else #define DLLTEST_API __declspec(dllimport) #endif 5.宏的定义 尽量使用括号来包住所定义的对象 #define LUA_TNONE (-1) #define lua_register(L,n,f) (lua_pushstring(L, n), lua_pushcfunction(L, f), lua_settable(L, LUA_GLOBALSINDEX)) 6.目录结构 一般应该使用一个单独的include目录来包含要发布的头文件,但不应该把内部使用的头文件包含进去。 Lua 的 include目录只包含了三个头文件 lauxlib.h , lua.h, lualib.h |