自定义打印输出

来源:互联网 发布:手机关闭蜂窝移动数据 编辑:程序博客网 时间:2024/05/29 15:00
 #include <stdio.h>
#include <stdarg.h>
using namespace std;

#define MACRO_PRINT


 void MACRO_Print(const char* format, ...) {
 #ifdef MACRO_PRINT
 if (NULL == format)
 {
 return;
 }
 char szStr[1024] = { 0 };
 va_list ap = NULL;
 va_start(ap, format);
 vsprintf_s(szStr, format, ap);
 printf(szStr);
 va_end(ap);
 #endif // MACRO_Print
 
 }

void main()
{
printf("%s", "ok!");
MACRO_Print("macro print:%s","sucess");

}


附:定义函数:int vsprintf(char * str, const char * format, va_list ap);

函数说明:vsprintf()会根据参数format 字符串来转换并格式化数据, 然后将结果复制到参数str 所指的字符串数组, 直到出现字符串结束('\0')为止. 关于参数format 字符串的格式请参考printf(). va_list 用法请参考附录C 或vprintf()范例.

返回值:成功则返回参数str 字符串长度, 失败则返回-1, 错误原因存于errno 中.

0 0