в:
int name5, name4, name3, name 2, name1, name0;
?
Есть возможность написать int name[6]; и не изобретать дичь...
...параметр можно приклеить к чему-то еще, чтобы получился новый идентификатор. Для этого между параметром и тем, с чем мы его склеиваем, нужно поставить '##': #define PRINT_VAL (number) printf("%d", value_##number); int value_one = 10, value_two = 20; PRINT_VAL(one) // -> 10 PRINT_VAL(two) // -> 20 Источник: https://habr.com/ru/post/546946/ может быть поможет, хотя не до конца решает проблему
#define CONC_(a,b) a##b #define CONC(a,b) CONC_(a,b) #define LOOP1(a) CONC(a,__COUNTER__) #define LOOP2(a) CONC(a,__COUNTER__), LOOP1(a) #define LOOP3(a) CONC(a,__COUNTER__), LOOP2(a) #define LOOP4(a) CONC(a,__COUNTER__), LOOP3(a) #define LOOP5(a) CONC(a,__COUNTER__), LOOP4(a) #define LOOP6(a) CONC(a,__COUNTER__), LOOP5(a) #define LOOP7(a) CONC(a,__COUNTER__), LOOP6(a) #define LOOP8(a) CONC(a,__COUNTER__), LOOP7(a) #define LOOP9(a) CONC(a,__COUNTER__), LOOP8(a) #define NAMES(n,a) LOOP##n(a) int main(void) { int NAMES(6, name); } g++ -E -P test.cpp int main(void) { int name0, name1, name2, name3, name4, name5; } если что я нуб в этом, помогаю как могу
Массивы не проходили ещё, да?
Спасибо, что-то похожее. Завтра попробую.
Отвечал уже.
Обсуждают сегодня