Hi,

On Sun, Jul 29, 2012 at 3:19 PM, Luigi Rizzo <ri...@iet.unipi.it> wrote:
> Remapping f(a) into f(a, b) requires both a macro
> and a wrapping function, something like this
>
>         T __f(T1 a, T2 b) { return f(a, b); }
>         #define f(a) __f(a, b)
>
This can be done way more easily:

void fn(int a, int b)
{
        printf("%d %d\n", a, b);
}

#define fn(x)   ({ fn(x, 42); })

int main(int argc, char **argv)
{

        fn(0);
        return 0;
}

works just fine.

> but i am not so interested in participating to the IOCCC :)
>
maybe you should ;-)

 - Arnaud

ps: this construct is used all over the Linux kernel compatibility libraries.
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to