Возможно ли отключить 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 значение и отменить его?

Ответы на вопрос(5)

Ваш ответ на вопрос