
C/C++
chenzhxvip
这个作者很懒,什么都没留下…
展开
-
浮点型变量与零值比较
浮点型变量与零值比较不可以将浮点型变量用“==”或“!=”与零值进行比较,因为浮点型变量都有精度限制,应转化为“>=”或“”形式。如:if ( x == 0.0 ) 应写为 if ( (x>= -EPSINON) && (x 其中,EPSINON为允许的误差(即精度)如何理解?以浮点型变量x为例,若浮点型的精确度为8位,则小数点后8位都是准确的,若float x=0.0,则转载 2014-10-23 10:04:04 · 878 阅读 · 0 评论 -
lsof can't identify protocol 句柄泄漏分析
前几天服务器上出现程序cpu标高,通过gdb看堆栈信息,发现Too many open files问题 通过lsof -p pid |wc -l看到文件非常高分析如下:程序主要是通过360开源的evpp 调用libevent 的http接口实现简单http服务器功能。所以一开始就就直接怀疑是evpp开源代码出现的问题,然后就看源代码分析。看句柄释放位置,但是不得而终。后面开...原创 2018-10-20 14:11:38 · 5269 阅读 · 0 评论 -
代码优化
Optimize Applications with gcc and glibcby Ulrich Drepper1. 介绍=======本文总结一些关于代码优化的经验, 这些经验是不完整的.本文不是讨论编译器如何优化代码, 后者是完全不同的另外一个领域.2. 编译时优化(Using Optimizations Performed at Compile-Time)===转载 2015-08-08 11:38:13 · 1120 阅读 · 0 评论 -
C语言 printf /sprintf格式化 输出 右对齐补零
关于printf的一点总结,内容来自http://blog.sina.com.cn/s/blog_5ac88b350100auna.html1.1 标准输入输出函数1.1.1 格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入、 输出函数printf( ) 和 scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。转载 2014-12-31 09:25:37 · 6349 阅读 · 0 评论 -
C++ 虚函数内存布局学习笔记
由sizeof()求带有虚函数的类的大小引发的思考,在查看相关资料的过程中看到了陈皓先生的一篇文章《C++ 虚函数表解析》(详情见http://blog.youkuaiyun.com/haoel)觉得讲的十分的好,只是看完之后仍对为什么要又为什么可以由父类的指针调用子类的对象的虚函数不解,如这种典型的描述:Derive d;//Derive 是Base的子类Base *b1 = &d;//这必转载 2014-12-02 11:18:16 · 423 阅读 · 0 评论 -
什么时候用引用
1.什么是“引用”?申明和使用“引用”要注意哪些问题?引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是转载 2014-11-06 14:50:10 · 351 阅读 · 0 评论 -
const 函数
转载自:http://blog.youkuaiyun.com/whyglinux/archive/2006/02/18/602329.aspx 类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。 在设计类的时候,一个原则就是对于不改变数据成员的成员函数都要在后面加 const,而对于改变数据成员的成员函数不能加 c转载 2014-11-06 14:47:02 · 384 阅读 · 0 评论 -
printf("%f",10/3);的结果是什么?
转载自:http://www.cnblogs.com/xkfz007/archive/2012/05/18/2508265.htmlprintf("%f",10/3);的结果是什么?今天在网上看到这个问题,自以为的输出是3.0,但是实际去跑一下,可以发现结果是0.0000这一句虽然不长,但是其中蕴涵的知识点是很多的。第一,10/3的结果是什么?这个很显然结果应该转载 2014-11-06 15:55:56 · 2380 阅读 · 0 评论 -
C库中重要字符串函数的简要分析及实例
转载自:http://www.cnblogs.com/xkfz007/archive/2012/10/11/2720631.html#3046553追随技术WithPassion学如逆水行舟,不进则退随笔 - 335, 文章 - 174, 评论 - 67, 引用 - 0C库中重要字符串函数的简要分析及实例1. strspn转载 2014-11-06 15:26:38 · 519 阅读 · 0 评论 -
结构体字节对齐
结构体(struct)的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。先看下面定义的两个结构体.struct{ char a; short b; char c;}S1;struct{ char a; char b; short c;}S2;分别用程序测试得出sizeof(S1)=6 , s转载 2014-10-15 11:14:55 · 385 阅读 · 0 评论 -
glib的slab算法实现学习
slab提出来是为了解决内部内存碎片的问题,在linux内核中与buddy system一起来解决内核内存管理。但是要看懂slab在linux内核中的实现当前有些困难,我们不如拿些容易阅读的代码来了解slab算法的运作过程。GLIB库实现非常clear,可以做为slab算法的实现学习的入门。slab在GLIB中的实现相关文件是gslice.h/c,但是在这个实现文件中,有更复杂的,支持多线程更转载 2014-11-11 09:28:14 · 975 阅读 · 0 评论 -
浅谈C语言中的位段
浅谈C语言中的位段 浅谈C语言中的位段 位段(bit-field)是以位为单位来定义结构体(或联合体)中的成员变量所占的空间。含有位段的结构体(联合体)称为位段结构。采用位段结构既能够节省空间,又方便于操作。 位段的定义格式为:转载 2014-10-08 11:17:10 · 1214 阅读 · 0 评论 -
浅谈C++中指针和引用的区别
浅谈C++中指针和引用的区别指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;i转载 2014-10-08 10:36:39 · 396 阅读 · 0 评论 -
webrtc 编译linux版本的各种问题
下载和编译参照:http://depthlove.github.io/2019/05/02/webrtc-development-2-source-code-download-and-build/最后的编译选项:gn gen out/linux --args='target_os="linux" target_cpu="x64" is_debug=false is_clang=false ...原创 2019-06-11 15:53:22 · 7034 阅读 · 2 评论