c# - C++大型程序/框架构建

标签 c# c++ architecture project-structure

我是一名 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# - C++大型程序/框架构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21872986/

相关文章:

java - 跟踪 AWS 上的异步 Lambda 执行

architecture - 遥测设计模式 - 设备和服务器之间的互操作性(SMS、GPRS 等)

c# - 并发字典多次写入

c++ - 如何在 C++ 中处理具有多个不同类型数据成员的类?

c++ - 如何将文件中的数字放入 vector vector 中?

c++ - 如何制作一个也包含列表的节点

ruby-on-rails - 如何在 Ruby on Rails 中构建多级层次结构?

c# - 在泛型类中需要一个真正的静态字段,否则如何保护它的可见性?

c# - 请解释 AsParallel()

c# - 什么是 Windows IPC 方法