![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
dawning126
这个作者很懒,什么都没留下…
展开
-
free(p)和p=NULL的区别
不相同!free(p)指的是收回分配给它的空间,至于收回后p还指向之前的地址,不过里面的内容已经被清空了或者是乱码(这点可以编程输出一下p指向空间的内容,我在不同的机子上试的结果的不同,不过大多数是清空了的。而赋值为NULL,就是让其指向NULL这个地址。但是分配给p的那块内存不会收回去,这样就会造成内存的浪费!一般比较安全的写法是:free(p); p=NULL...原创 2011-09-27 19:05:09 · 3286 阅读 · 0 评论 -
switch和if-else性能比较
switch和if-else相比,由于使用了Binary Tree算法,绝大部分情况下switch会快一点,除非是if-else的第一个条件就为true.说实话 我也没有深入研究过这个问题的根源只是在实际开发中 没有人会去用很多很多else if的都是用 switch case 的 后者比较清晰 给人感觉就是一个脑子很清楚的人写出来的东西至于效率的本质 就让大企鹅去操心吧编译器编译s...原创 2011-10-19 11:25:44 · 236 阅读 · 0 评论 -
undefined reference to error解决方法
Linux下编译程序时,经常会遇到“undefined reference error” 报错,这里总结一些可能的原因和解决方案,给需要的朋友:说道undefined reference error,先提一下Linux gcc链接规则:链接的时候查找顺序是:-L 指定的路径, 从左到右依次查找 由 环境变量 LIBRARY_PATH 指定的路径,使用":"分...原创 2011-10-21 16:48:56 · 179 阅读 · 0 评论 -
C++ previous declaration of...with 'C++' linkage
在C++环境下使用C函数的时候,常常会出现编译器无法找到obj模块中的C函数定义,从而导致链接失败的情况,这是因为C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名。但有时还会出现...原创 2011-12-15 11:05:13 · 2139 阅读 · 0 评论 -
用C++调用C的库函数
http://linhs.blog.51cto.com/370259/140927 C++调用C的库函数时,如果头文件定义得不恰当,可能会出现明明某函数在obj文件中存在,但是却发生链接失败的情况,出现如下错误: undefined reference to 'xxx' 出现问题的原因是c库函数编译成obj文件时对函数符号的处理和C++不同。因为C++函数...原创 2011-12-09 18:06:54 · 239 阅读 · 0 评论