1 问题的提出
int iOffset = 0; //发现iOffset值为7,以前一直认为应该是3 iOffset += snprintf(buff,3,”%s”,”123456”);
2 分析
通过分析snprintf帮助手册,发现:
snprintf(to, size, “%s”, from);
当size>strlen(from)+1返回值为strlen(from)
当size<=strlen(from)+1返回值为strlen(from)+1
3 结论
1 sprintf和snprintf会自动在目地缓存后面添加一个’\0’
char buff[256]; memset(buff,’a’,256); sprintf(buff,“%s”,”123”); printf(“%s\n”,buff); //输出123
2 sprinf和snprintf的返回值是不一样的