zoukankan      html  css  js  c++  java
  • sprintf 、vsprintf 、_vsntprintf

    转载:https://blog.csdn.net/anye3000/article/details/6593551

    sprintf函数的定义为:

    int sprintf(char *szBuffer, const char *szFormat,...);

    第一个参数:一个字符缓冲区,后面是一个格式字符串。sprintf并不是把格式化结果写到标准输出,而是将其存入szBuffer。该函数返回该字符串的长度。

    vsprintf 函数定义如下:

    int vsprintf(char *string, char *format, va_list param);

    vsprintf 是sprintf 的一个变形,它只有三个参数。vsprintf 用于执行有不定数量参数的函数,类似printf 格式。vsprintf的前两个参数与sprintf相同:一个用于保存结果的字符串缓冲区和一个格式化字符串。第三个参数是指向格式化参数队列的指针。实际上,该指针指向在堆栈中供函数调用的变量。va_list、va_start和va_end宏(在STDARG.H中定义)帮助我们处理堆栈指针。

    _vsntprintf:

    int CDECL MsgVsntprintf(char *szCaption, char *szFormat,...)
    {
        char szBuffer[200];
        va_list pArgList;
        va_start (pArgList,szFormat);    
        _vsntprintf(szBuffer,sizeof(szBuffer)/sizeof(char),szFormat,pArgList);
        va_end (pArgList);
        return MessageBox(NULL,szBuffer,szCaption,0);
    }

     

  • 相关阅读:
    Java lamda Stream
    java动态绑定的一点注意
    javascript的一点学习
    阶段总结
    some notes about spring aop
    java 命令notes
    Guava cache
    位运算
    解析JDK 7的动态类型语言支持
    Maven里面多环境下的属性过滤(配置)
  • 原文地址:https://www.cnblogs.com/Toya/p/11046265.html
Copyright © 2011-2022 走看看