Расширяя этот вопрос, я хотел использовать мой enumed val, как они "должны" быть,
#include <stdio.h>
enum E{ A, B, C } ;
#define inc(enVal) (*((int*)&enVal))++
int main()
{
E t = A ;
inc( t ) ;
printf( "t %d\n", t ) ;
}
Теперь t
является переменной типа enum'd E, и у меня есть макрос inc
, который увеличивает значение t
на 1,
Значит, этот макрос (и, вероятно, другие макросы, подобные ему для проверки флагов) будет гораздо менее эффективен, чем просто использование int t
вместо этого?