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

Reply via email to