C++大规模程序/框架构建

C++ Large Scale Program/Framework construction

本文关键字:框架 构建 程序 大规模 C++      更新时间:2023-10-16

我是一名c#程序员,实际上是一名业余爱好者,对低级和高级程序都很感兴趣。很多时候我遇到C/C++项目,它们有大量的代码,比如这样->

#if defined(LUA_COMPAT_GETN)
LUALIB_API int (luaL_getn) (lua_State *L, int t);
LUALIB_API void (luaL_setn) (lua_State *L, int t, int n);
#else
#define luaL_getn(L,i)          ((int)lua_objlen(L, i))
#define luaL_setn(L,i,j)        ((void)0)  /* no op! */
#endif
#if defined(LUA_COMPAT_OPENLIB)
#define luaI_openlib    luaL_openlib
#endif

/* extra error code for `luaL_load' */
#define LUA_ERRFILE     (LUA_ERRERR+1)

我发现很难理解这一切,我能很好地理解和编程c#。我可以用C/C++编程,但我不明白是否需要这样的声明和语法。我是不是错过了什么?有没有一本书或网站可以让我了解这些声明的用途和必要性?

注:我是一名电气工程师,所以在大学里接触编程的机会有限。我能做的大部分事情都是自学的。

这些是C++宏。我相信C#也有类似的预处理器语句,如#if、#elif、#else、#endif
http://msdn.microsoft.com/en-us/library/ed8yd1ha.aspx
C++中某些宏的目的是根据各种构建条件编译代码。