C++大规模程序/框架构建
C++ Large Scale Program/Framework construction
我是一名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++中某些宏的目的是根据各种构建条件编译代码。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 无法在 CLion 中构建 C++ 项目
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用ndk-build.cmd构建Android.so文件
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 构建一个真正、完全静态的Qt 5框架和应用程序(Qt 5.8之后)
- 在 Linux 上构建 cpptest 单元测试框架
- 如何翻译使用预构建的QT安装程序框架创建的安装程序,无论OS语言如何
- 架构 arm64 的未定义符号仅在构建框架时
- C++大规模程序/框架构建
- 在 XCode 4.4.1 上构建 gtest 框架
- 如何构建 Caffe 框架 XCode 6.2,iOS 8.3 环境
- 需要帮助解决C++引擎/框架构建中的链接器错误
- 哪个C++单元测试框架不需要我将应用程序构建为库
- 创建一个构建框架来支持编译支持多个平台的代码
- 在Windows上构建恶意框架时对"DummyInputMethod3::staticMetaObject"的未定义引用
- 如何在c++ (QT框架)中使用UTF字符构建字符串
- Android OS框架-将单个可执行文件构建为共享对象