| |||
|
|
К недавнему посту: Я радовался фрагменту кода из GTK+: int width = ((union { char *string; unsigned int word; }) nl_langinfo(_NL_PAPER_WIDTH)).word На самом деле это обернуто в макру (файл gtk/gtkpapersize.c, если кому-то это интересно): #define NL_PAPER_GET(x) \ ((union { char *string; unsigned int word; })nl_langinfo(x)).word но, imho, это ничего не меняет: imho это полный эквивалент #define NL_PAPER_GET(x) ((unsigned)nl_langinfo(x)) Вопрос - на фига было использовать компиляторно-зависимую конструкцию в контексте, где она 1) имеет точный аналог в рамках стандарта 2) этот аналог еще и короче и понятнее Или я все-таки чего-то не понимаю и есть какая-то тонкая разница? |
||||||||||||||