上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 75 下一页
摘要: 1.定义函数 int sscanf (const char *str,const char * format,........); 函数说明 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。 返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。 ... 阅读全文
posted @ 2012-11-18 13:28 浪里飞 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 为什么需要字节对齐? 计算机组成原理教导我们这样有助于加快计算机的取数速度,否则就得多花指令周期了。为此,编译器默认会对结构体进行处理(实际上其它地方的数据变量也是如此),让宽度为2的基本数据类型(short等)都位于能被2整除的地址上,让宽度为4的基本数据类型(int等)都位于能被4整除的地址上,以此类推。这样,两个数中间就可能需要加入填充字节,所以整个结构体的sizeof值就增长了... 阅读全文
posted @ 2012-11-17 14:01 浪里飞 阅读(2120) 评论(0) 推荐(0) 编辑
摘要: 其实理解 sizeof 只需要抓住一个要点:栈 程序存储分布有三个区域:栈、静态和动态。能够从代码直接操作的对象,包括任何类型的变量、指针,都是在栈上的;动态和静态存储区是靠栈上的指针来间接操作的。sizeof 操作符,计算的是对象在栈上的投影体积;记住这个就很多东西都很清楚了。 char const * static_string = "Hello"; sizeof(st... 阅读全文
posted @ 2012-11-17 13:59 浪里飞 阅读(489) 评论(0) 推荐(0) 编辑
摘要: 1.strlen()用来计算指定的字符串s的长度,不包括结束字符'\0'。strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值,在程序运行时计算。 原文: http://baike.baidu.com/view/736226.htm 2.s... 阅读全文
posted @ 2012-11-17 12:32 浪里飞 阅读(300) 评论(0) 推荐(0) 编辑
摘要: sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访问错误,但好在由sprintf 误用导致的问题虽然严重,却很容易找出,无非就是那么几种情况,通常用眼睛再把出错的代码多看几眼就看出来了。 sprintf_s()是sprintf()的安全版本,通过指定缓冲区长度来避免sprintf()存在的溢出风险 。这个安全版本的原型是: int spr... 阅读全文
posted @ 2012-11-16 00:10 浪里飞 阅读(693) 评论(0) 推荐(0) 编辑
摘要: 打印地址信息 有时调试程序时,我们可能想查看某些变量或者成员的地址,由于地址或者指针也不过是个32 位的数,你完全可以使用打印无符号整数的“%u”把他们打印出来: sprintf(s, "%u", &i); 不过通常人们还是喜欢使用16 进制而不是10 进制来显示一个地址: sprintf(s, "%08X", &i); 然而,这些都是间接的方法,对于地址打印,... 阅读全文
posted @ 2012-11-15 23:53 浪里飞 阅读(884) 评论(0) 推荐(0) 编辑
摘要: 连接字符串 sprintf 的格式控制串中既然可以插入各种东西,并最终把它们“连成一串”,自然也就能够连接字符串,从而在许多场合可以替代strcat,但sprintf 能够一次连接多个字符串(自然也可以同时在它们中间插入别的内容,总之非常灵活)。比如: char* who = "I"; char* whom = "CSDN"; sprintf(s, "%s love ... 阅读全文
posted @ 2012-11-15 23:47 浪里飞 阅读(7297) 评论(0) 推荐(0) 编辑
摘要: 我们知道,在C/C++语言中,char 也是一种普通的scalable 类型,除了字长之外,它与short,int,long 这些类型没有本质区别,只不过被大家习惯用来表示字符和字符串而已。(或许当年该把这个类型叫做“byte”,然后现在就可以根据实际情况,使用byte 或short 来把char 通过typedef 定义出来,这样更合适些)于是,使用”%d”或者”%x”打印一个字符,便能得... 阅读全文
posted @ 2012-11-15 23:16 浪里飞 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 这里要注意一个符号扩展的问题:比如,假如我们想打印短整数(short)-1 的内存16 进制表示形式,在Win32 平台上,一个short 型占2 个字节,所以我们自然希望用4 个16 进制数字来打印它: short si = -1; sprintf(s, "%04X", si); 产生“FFFFFFFF”,怎么回事?因为spritnf 是个变参函数,除了前面两个参数之外,... 阅读全文
posted @ 2012-11-15 00:27 浪里飞 阅读(659) 评论(0) 推荐(0) 编辑
摘要: 表头文件 #include<stdio.h> 定义函数 int sprintf( char *str,const char * format,.........); 函数说明 sprintf()会根据参数format字符串来转换并格式化数据,然后将结果复制到参数str所指的字符串数组,直到出现字符串结束(’\0’)为止。关于参数format字符串的格式请参考pr... 阅读全文
posted @ 2012-11-15 00:18 浪里飞 阅读(456) 评论(0) 推荐(0) 编辑
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 75 下一页