inline
к определению в .hФункция как функция.
webdriverxx::split
. И если хотим кусочек памяти, например устройства, для доступа по DMA, то нужно специально попросить блок mmu, чтобы он трарслировал какой-то кусочек виртуальной памяти в реальные адреса.
если я правильно понял, у меня есть следующие варианты
В первом варианте по-прежнему при компиляции будет необходим -L.
? Или export.. делает это необязательным?
static inline struct _sst__ ## __COUNTER__ { \ _sst__ ## __COUNTER__ () \ { \ {RunOnceBlockCode(HEADBEGIN, КОД_ИНИЦИАЛИЗАЦИИ) ;} \ } \ } static_initial{};
#define Определение2Названия(НАЗВАНИЕ1, НАЗВАНИЕ2) \
ОпределениеНазвания(Объединить(Объединить(НАЗВАНИЕ1, _), НАЗВАНИЕ2))
#define Определение2Названия(НАЗВАНИЕ1, НАЗВАНИЕ2) \
ОпределениеНазвания(НАЗВАНИЕ1 ## _ ## НАЗВАНИЕ2)
А теперь что не так?
А сейчас почему не собирается?
флаг_инициализации__ ## Определение2Названия
флаг_инициализации__ ## Определение2Названия
склеиваются до того как выполнется подстановка Определение2Названия(НАЗВАНИЕ1, НАЗВАНИЕ2)
. а тот шо не так?
visual studio компилил этот код без проблем
)флаг_инициализации
не является одним валидным токеном препроцессора.
Nightmare A, я тебе рекомендую разобраться, для чего используется защита макросом препроцессора -- для защиты от повторного включения файла в одну и ту же единицу трансляции. Потому что иначе была бы ошибка компиляции. От включения в разные единицы трансляции этот метод не помогает, а если ты посмотришь внимательно на сообщение об ошибке, то увидишь, что это не ошибка компиляции, а ошибка линковки, а конфликтующие символы определены в разных объектных файлах.