move __attribute__ to definition ; use _Printf_format_string_ for VC