Мне нужно объединить строки, используя макросы, для генерации имен функций.Использование макроса на языке C
#define CONCAT(a,b,c) a ## b
int i=1;
CONCAT(a,i)
Этот код дает ai
как результат, в то время как то, что я хотел это a1
.
Поскольку в моем исходном коде много функций, я не хочу перечислять их.
Моя цель:
for(int i=0;i<100;i++)
{
Funi1();//here i should be from 0 to one hundred
Funi2();
Funi3();
Funi4();
..
}
@Potatoswatter
Я написал сценарий, чтобы расширить его и стоимость выходного файла сервала сотен строк. @ Eric Finn
замещение происходит, если предварительная обработка, до того, как компилятор имеет какое-либо понятие переменной 'i' со значением' 1'. Что вы на самом деле пытаетесь написать? – BoBTFish
Предлагаю вам ознакомиться с тем, как (и когда) работает препроцессор ... –
Пожалуйста, объясните, почему вам нужен набор функций, определенных с помощью макросов, а не одна функция с целым параметром. Как вы описали, это не убеждает, что вам действительно нужно то, что вы пытаетесь сделать. – hdante