-extern int asprintf (char **ptr, const char *fmt, /*args*/ ...);
-extern int vasprintf (char **ptr, const char *fmt, va_list ap);
-extern int asnprintf (char **ptr, size_t str_m, const char *fmt, /*args*/ ...);
-extern int vasnprintf(char **ptr, size_t str_m, const char *fmt, va_list ap);
+#if (defined(__GNUC__) && !defined(__cplusplus))
+ extern int asprintf(char **ptr, const char *fmt, /*args */ ...);
+ extern int vasprintf(char **ptr, const char *fmt, va_list ap);
+#endif
+
+ extern int asnprintf(char **ptr, size_t str_m, const char *fmt, /*args */
+ ...);
+ extern int vasnprintf(char **ptr, size_t str_m, const char *fmt,
+ va_list ap);