Xavier SIRVENT a écrit :
>
> gcc -c va_arg.cpp
> va_arg.cpp: In function `void foo (char *, ...)':
> va_arg.cpp:26: `char' is promoted to `int' when passed through `...'
> va_arg.cpp:26: (so you should pass `int' not `char' to `va_arg')
> va_arg.cpp: At top level:
> va_arg.cpp:33: parse error before `}'
>
Effectivement, ca passe avec egcs-2.91.66 mais pas avec gcc-2.96 ni
gcc-3.*
Il semble que gcc 3 soit néanmoins conforme (C89)
Les chars sont promus en int. Il te faut quelque chose comme ca:
c = (char)va_arg(ap, int);
http://gcc.gnu.org/ml/gcc-bugs/2001-08/threads.html#00976
--
Jérôme UZEL jerome.uzel@???