On Tue, Feb 16, 2010 at 3:05 PM, Michal Suchanek <hramr...@centrum.cz> wrote: > 2010/2/16 Vladimir 'φ-coder/phcoder' Serbinenko <phco...@gmail.com>: >> Michal Suchanek wrote: >>>> With typeof macro this can be made type-neutral avoiding potential >>>> mistakes. >>>> +static inline long >>>> +grub_min (long x, long y) >>>> +{ >>>> + if (x > y) >>>> + return y; >>>> + else >>>> + return x; >>>> +} >>>> + >>>> >>> >>> I don't see how typeof would be used. As I understand the docs it can >>> only set types relative to something what is already defined (and in >>> some cases actually dereference/call it) and there is nothing defined >>> at the point these functions are declared to copy the type from. >>> >> #include <stdio.h> >> #define swap(a,b) {typeof (a) mytemp ## __LINE__; mytemp ## __LINE__ = >> b; b = a; a = mytemp ## __LINE__; } >> > > Unlike inlines this pollutes the local namespace with unexpected > identifiers.. Perhaps the temporary variable should be at least > prefixed with an underscore or something.
The braces introduce a block and the variable goes out of scope, in fact there's no need for __LINE__ because of this. _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel