On Monday, 9 April 2012 at 20:18:29 UTC, Ali Çehreli wrote:


The GCC C compiler proves you wrong :) They have warnings. I guess it's a hack (because printf really doesn't belong into the compiler) but that
doesn't matter. What matters is user-friendliness.

Indeed. dmd should warn about any incompatible data passed as variadic parameters. It's simple to decide: only fundamental types that correspond to C counterparts should be allowed. Hmmm... Even that's not that simple: int is 32 bits in D but unspecified in C.

Maybe printf should not be visible at all - or under a different name ("cprintf" or something similar). It's just too tempting...

C variadic arguments are one of the most unsafe features of the C language. A total mess.

Stefan

Reply via email to