From: Richard G. <rg...@ne...> - 2005-03-06 16:26:22
|
I have been writing a function that takes a variable number of arguments using va_arg. I have found that it does not seem to function correctly with long double types. I know that printf() does not work with long double types because it uses the msvcrt library implementation, but does the va_arg functions suffer from the same problem? If it does is this because MinGW uses the msvcrt library for va_arg as well? Here is my test code: #include <stdio.h> #include <stdarg.h> void test(int a,...) { long double b; va_list argptr; va_start(argptr,a); b = va_arg(argptr,long double); //b = 50.1234; printf("a = %d\nb = %f",a,(double)b); //cast to double beacuse of limitations with printf() and long doube types va_end(argptr); } int main() { test(1,50.1234); return 0; } outputs: a = 1 b = -1.#IND00 Richard. |