давайте представим, что у нас есть проект C ++, который должен работать на нескольких платформах (например, arm / arm64), и нам нужно иметь специфические для цели значения для каждой из них.
Прямо сейчас мы делаем:
#ifdef PLATFORM_ARM
#define TIMEOUT_VALUE 0
#define OUR_MAGIC_VALUE 1
#elif PLATFORM_ARM64
#define TIMEOUT_VALUE 2
#define OUR_MAGIC_VALUE 3
#endif
где я могу разместить комментарий для каждого определенного имени, чтобы к нему можно было получить доступ из каждого определения?
Примечание: я не могу определить каждое значение в его собственном #ifdef, как
// a comment for TIMEOUT_VALUE
#ifdef PLATFORM_ARM
#define TIMEOUT_VALUE 0
#elif PLATFORM_ARM64
#define TIMEOUT_VALUE 2
#endif
// a comment for OUR_MAGIC_VALUE
#ifdef PLATFORM_ARM
#define OUR_MAGIC_VALUE 1
#elif PLATFORM_ARM64
#define OUR_MAGIC_VALUE 2
#endif
потому что у меня есть списки и деревья таких значений.
Спасибо.
Редактировать 1:
например, у нас есть 6 целей, и 4 из них поддерживают функцию,
поэтому мы пишем:
#if defined(ARM)
#define FEATURE 1
#elif defined(ARM64)
#define FEATURE 0
#elif define(MIPS)
#define FEATURE 1
etc... for other platforms.
тогда у меня есть код, который читает это определение где-то:
#if FEATURE
do something. Note that this part can't be described in a target specific file, because it can have the same implementation for several targets.
#endif
и теперь я хочу иметь место, чтобы описать в целом, что означает и делает эта ОСОБЕННОСТЬ.