c++语言
文章平均质量分 71
qq_20398345
这个作者很懒,什么都没留下…
展开
-
C++11中智能指针的原理、使用、实现
https://www.cnblogs.com/wxquare/p/4759020.html目录理解智能指针的原理智能指针的使用智能指针的设计和实现1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针...转载 2018-07-16 15:50:24 · 122 阅读 · 0 评论 -
Linux下的静态库与动态库
1、生成.SO: g++ test.cpp -fPIC -shared -o libtest.so 2、使用.SO: g++ L. -ltest main.cpp 在使用.SO的时候如果找不到.SO需要把.SO的路径加到/etc/ld.so.conf ldconfig使之生效 ldd 可以查看MAIN中是否包含了.SO。 3、生成.A ar -r libtest2.a...转载 2018-08-13 12:03:39 · 446 阅读 · 0 评论 -
C++11新特性学习
转载: https://blog.csdn.net/tennysonsky/article/details/77817048 1、什么是C+11 C++11标准为C++编程语言的第三个官方标准,正式名叫ISO/IEC 14882:2011 - Information technology -- Programming languages -- C++。在正式标准发布前,原名C++0x。...转载 2018-07-20 21:05:46 · 110 阅读 · 0 评论 -
linux内核数据结构之kfifo
https://www.cnblogs.com/Anker/p/3481373.html 1、前言 最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处理完,则A要...转载 2018-07-19 20:14:46 · 116 阅读 · 0 评论 -
理解Memory Barrier(内存屏障)
https://blog.csdn.net/caoshangpa/article/details/78853919 本文例子均在 Linux(g++)下验证通过,CPU 为 X86-64 处理器架构。所有罗列的 Linux 内核代码也均在(或只在)X86-64 下有效。 本文首先通过范例(以及内核代码)来解释 Memory Barrier,然后介绍一个利用 Memory Barrier ...转载 2018-07-19 20:04:36 · 331 阅读 · 0 评论 -
C++中线程安全并且高效的singleton
https://blog.csdn.net/janeqi1987/article/details/76147312 class CSingleton { private: CSingleton() //构造函数是私有的 { cout <<"cons" << endl; } public: static CSingleton *GetInstance...转载 2018-07-19 19:41:40 · 294 阅读 · 0 评论 -
【虚函数指针与虚函数列表】
https://blog.csdn.net/sinat_30409917/article/details/79427043当一个类定义了虚函数会隐式的创建一个自己的虚函数指针和虚函数列表。class Base {public: virtual void f() { cout<<"Base::f" << endl; } virtual void g() { cout...转载 2018-07-13 11:05:03 · 225 阅读 · 0 评论 -
char data[0]在struct末尾的用法
https://blog.csdn.net/hyqsong/article/details/50863746今天在看一段代码时出现了用结构体实现变长数组的写法,一开始因为忘记了这种技术,所以老觉得作者的源码有误,最后经过我深思之后,终于想起以前看过的用struct实现变长数组的技术。下面是我在网上找到的一篇讲解很清楚的文章。在实际的编程中,我们经常需要使用变长数组,但是C语言并不支持变长的数组。此...转载 2018-07-13 09:46:52 · 1361 阅读 · 0 评论 -
数组指针和指针数组的区别
http://www.cnblogs.com/mq0036/p/3382732.html数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一...转载 2018-07-13 09:46:11 · 4870 阅读 · 0 评论 -
【C++】预编译、编译、汇编、链接
https://blog.csdn.net/weixin_40740059/article/details/84075653 Windows中以2:2划分内核、用户空间,Linux中以1:3划分内核、用户空间。 在text段中,只有普通局部变量是指令 int gdata1 = 10; //.data 已初始化且初始化不为零的数据 int gdata2 = 0; //.bss ...转载 2018-11-21 13:00:43 · 351 阅读 · 0 评论