C # — C ++ Крупномасштабная программа / конструкция фреймворка

Я программист на 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 ++, но я не понимаю необходимости таких объявлений и синтаксиса. Я что-то пропустил? Есть ли книга или веб-сайт, на котором я могу изучить использование и необходимость таких заявлений?

Примечание: я инженер-электрик, поэтому ограниченное участие в программировании в колледже. Большинство из того, что я могу сделать, самообучается.

1

Решение

Это макросы C ++. Я считаю, что C # также имеет аналогичные операторы препроцессора, такие как #if, #elif, #else, #endif
http://msdn.microsoft.com/en-us/library/ed8yd1ha.aspx
Целью некоторых макросов в C ++ является компиляция вашего кода в зависимости от различных условий сборки.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]