snprintf vs _snprintf 和平台差异
来源:互联网 发布:淘宝卖弓犯法吗 编辑:程序博客网 时间:2024/04/30 10:14
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define snprintf _snprintf
int main()
{
char desc[8];
int ret, i;
//为了查看是否有自动补\0情况,我们将desc设置非\0值。
memset(desc, 'a', sizeof(desc));
ret = sizeof(desc); //可容纳字符的个数
printf("%d\n", ret);
for(i=0; i<=ret+1; i++)
printf("%c", desc[i]);
printf("\n\n");
//ret=8 , 字符串结尾未加\0
memset(desc, 'a', sizeof(desc));
ret = snprintf(desc,sizeof(desc),"%s","aaaaa");
printf("%d\n", ret);
printf("%s\n",desc);
printf("\n");
//ret=5 , 字符串结尾自动补\0)
memset(desc, 'a', sizeof(desc));
ret = snprintf(desc,sizeof(desc),"%s","aaaaaaaa");
printf("%d\n", ret);
printf("%s\n",desc);
printf("\n");
//ret=8, 字符串结尾未加\0
memset(desc, 'a', sizeof(desc));
ret = snprintf(desc,sizeof(desc),"%s","aaaaaaaaaaaaaa");
printf("%d\n", ret);
printf("\n");
//ret=-1 , 字符串结尾未加\0
return 0;
}
VC中的_snprintf的count参数表示,会向buff中写入count个字符,不包括'\0'字符,并且不会在字符串末尾添加'\0'符,并且,如果字符串超过count,函数返回-1以标志可能导致的错误; gcc中的snprintf函数的count参数表示,向buff中写入count个字符,包括'\0'字符,并且,返回实际的字符串长度. snprintf是C语言提供的字符串格式化函数,int snprintf ( char * restrict dest , size_t n , const char * restrict format , ... ); _snprintf是vc提供的字符串格式化函数,int _snprintf( char *buffer, size_t count, const char *format , ...); int _snwprintf(wchar_t *buffer, size_t count, const wchar_t *format [,argument] ... );则是Unicode版本。为了兼容ansi和Unicode,可以添加头文件tchar.h, 然后使用 _sntprintf , 当宏UNICODE打开时,可以看到 #define _sntprintf _snwprintf,这时实际使用的是_snwprintf.否则,#define _sntprintf _snprintf 使用ansi版本。
- snprintf vs _snprintf 和平台差异
- 平台间函数差异与系统移植:snprintf/_snprintf
- snprintf/_snprintf 在不同平台间函数差异
- snprintf/_snprintf 在不同平台间函数差异
- snprintf/_snprintf 在不同平台间函数差异
- snprintf/_snprintf 在不同平台间函数差异
- snprintf跟_snprintf的区别
- snprintf跟_snprintf的区别
- snprintf与_snprintf的区别
- strcpy/strncpy/sprintf/_snprintf/snprintf的区别
- VC中 snprintf()应该为: _snprintf()
- 谈SOA和平台
- 谈SOA和平台
- 框架和平台
- 语言和平台
- snprintf VS itoa
- 访问控制 : 语言和平台
- 架构、框架、模式和平台
- overload与override的区别
- 把信送给加西亚
- UNIX 类文件系统模拟实现
- Android Context 使用
- 一步一步跟我学习lucene(9)---lucene搜索之拼写检查和相似度查询提示(spellcheck)
- snprintf vs _snprintf 和平台差异
- 树莓派 - 安装MYSQL
- 加快 Word(office)软件的启动速度
- 修改Android应用程序的名字和图标
- hash trick在机器学习中的使用
- Android SlidingMenu 使用详解
- 数字图像处理词汇表
- maven安装与创建多模块项目
- NOJ 2015年陕西省程序设计竞赛网络预赛(正式赛)(和谐的比赛-dp寻路)