Hi Rob,

>Perhaps this might lead you in the right direction Jean-Christophe ...
>
>#include <stdarg.h>

Thank you for your answer.
The va_* construct isn't portable, AFAIK.  Various compilers (headers, 
libraries) may (and did) implement it in different and potentially 
incompatible ways.

Since in my case I have homebrew extensions, stock sqlite3.dll and 
third-party software, all compiled with distinct compilers, I've 
avoided using va_*.

In fact, this is a bit pedantic, since what I've done (packing 
arguments in a structure which is pushed on the stack) is strictly 
equivalent to the "packed array" va_* variation and is simply what the 
stack would look like if individual parameters were pushed naturally in 
a standard multi-parameter function call.  The drawback is that the 
maximum number for parameters must be fixed, but I guess this is harder 
to circumvent (in C).

Some day when/if I get spare time, I'll reimplement the printf 
extension, remove what's useless here (eg %c) and make it a bit more 
robust (force ll prefix for integers, a.s.o.) but this is very low 
priority for now.



_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to