This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Last revision Both sides next revision | ||
gcc_extensions [2019/07/25 12:41] rpjday [Nonlocal gotos] |
gcc_extensions [2019/07/25 12:52] rpjday [Nonlocal gotos] |
||
---|---|---|---|
Line 50: | Line 50: | ||
Use ''%%__builtin_setjmp%%'' and ''%%__builtin_longjmp%%''. | Use ''%%__builtin_setjmp%%'' and ''%%__builtin_longjmp%%''. | ||
+ | |||
+ | ==== Constructing function calls ==== | ||
+ | |||
+ | ==== typeof ==== | ||
+ | |||
+ | <code> | ||
+ | #define max(a,b) \ | ||
+ | ({ typeof (a) _a = (a); \ | ||
+ | typeof (b) _b = (b); \ | ||
+ | _a > _b ? _a : _b; }) | ||
+ | </code> | ||
+ | |||
+ | ==== Conditionals ==== | ||
+ | |||
+ | Equivalent: | ||
+ | |||
+ | <code> | ||
+ | x ? x : y | ||
+ | x ? : y | ||
+ | </code> | ||
+ | |||
+ | ==== Non-constant initializers ==== | ||
+ | |||
+ | ==== Designated initializers ==== | ||
+ | |||
+ | ==== Case ranges ==== | ||
+ | |||
+ | <code> | ||
+ | case low ... high: | ||
+ | </code> | ||
+ | |||
+ | |||
+ |