|
,sprintf函式可以这样编写:
int sprintf (char * szBuffer, const char * szFormat, ...) { int iReturn ; va_list pArgs ; va_start (pArgs, szFormat) ; iReturn = vsprintf (szBuffer, szFormat, pArgs) ; va_end (pArgs) ; return iReturn ; }
va_start巨集将pArg设置为指向一个堆叠变数,该变数位址在堆叠参数szFormat的上面。
由於许多Windows早期程式使用了sprintf和vsprintf,最终导致Microsoft向Windows
API中增添了两个相似的函式。Windows的wsprintf和wvsprintf函式在功能上与sprintf和vsprintf相同,但它们不能处理浮点格式。
当然,随著宽字元的发表,sprintf类型的函式增加许多,使得函式名称变得极为混乱。表2-1列出了Microsoft的C执行时期程式库和Windows支援的所有sprintf函式。
|