Я не знаю, почему вы хотели бы сделать это (возможно, потому что вы хотите "эмулировать" пространства имен), но, предполагая, что вы находитесь в C, вы можете достичь этого с помощью следующего кода.
#define concat2(X, Y) X ## Y
#define concat(X, Y) concat2(X, Y)
#define pfx(x) concat(pfx_, x)
Использование:
int pfx(sum)(int x, int y) {
return x + y;
}
int main() {
printf("%d\n", pfx(sum)(5,4));
}
Примечание: если вы хотите использовать больше вычислительной мощности макроса (не знаю, так ли это у вас), вам следует посетить P99