Возможно ли отключить typeof в gcc pure C?
У меня есть макрос, который использует GCCs typeof для создания переменной того же типа в качестве макро-аргумента. Проблема в том, что если этот аргументconst
тип, переменная, созданная внутри макросаconst
и я могу'не используй это. Например:
#include
#define DECR(x) ({typeof(x) y; y = x; y--; y;})
int main(void)
{
const int v = 5;
printf("%d\n", DECR(v));
return 0;
}
Компиляция дает:
$ cc -c -o t.o t.c
t.c: In function 'main':
t.c:9:2: error: assignment of read-only variable 'y'
t.c:9:2: error: decrement of read-only variable 'y'
make: *** [t.o] Error 1
Есть ли способ скопировать typeof значение и отменить его?