c++
伟大发明创造^.^
这个作者很懒,什么都没留下…
展开
-
透析string的c_str()函数
回到主题,string定义了与旧c++和c语言的接口,通过c_str()函数,就能够得到C风格的字符串,但它是怎么得到的c风格的字符串的呢?这个字符串又是储存在内存的什么地方呢?它和string对象中存储的字符串有什么关系呢? 在不看string源码的情况下(以后我会以源码的方式去看看具体), 我们也可以做些实验来看看这个函数在搞什么鬼。c_str()的返回值是 const char * 类型的指针, 即不能对它指向的值进行修改, 为什么要设计成返回不能修改所指向的值的指针,原因就是这个指针所指向的内存原创 2017-02-08 16:07:15 · 753 阅读 · 0 评论 -
可变参数解析
提供了以下数据类型和宏,以便我们编写长度可变的函数typedef char * va_list;#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )#define va原创 2018-01-16 20:21:58 · 278 阅读 · 0 评论