随笔分类 -  language

programming language
摘要:C++智能指针 auto_ptr 不支持数组,因为删除器调用的 delete不是delete [] 不支持循环引用,需要用 shared_ptr 和 weak_ptr 所有权问题,发生所有权转移后(=操作或者作为参数等),原指针将被 reset,再次使用原指针的操作会导致崩溃 class Base 阅读全文
posted @ 2020-12-23 14:48 sinpo828 阅读(28) 评论(0) 推荐(0) 编辑
摘要:左值(lvalue, left value),顾名思义就是赋值符号左边的值。准确来说, 左值是表达式(不一定是赋值表达式)后依然存在的持久对象。 右值(rvalue, right value),右边的值,是指表达式结束后就不再存在的临时对象。 C++11 中为了引入强大的右值引用,将右值的概念进行了 阅读全文
posted @ 2020-12-22 13:37 sinpo828 阅读(657) 评论(0) 推荐(0) 编辑
摘要:记录下编译器检查内存问题的一个flag -fsanitize=address,-fno-omit-frame-pointer! 除了valgrind 又有一个很有好的检察工具! 参考 者旨於陽:Linux高级调试与优化——Address Sanitizer Address Sanitizer ASA 阅读全文
posted @ 2020-08-31 11:08 sinpo828 阅读(774) 评论(0) 推荐(0) 编辑
摘要:代码与可执行文件 代码段,数据段,BSS段,堆、栈 数据段、代码段、堆栈段、BSS段的区别 程序内存空间(代码段、数据段、堆栈段) 代码段:简单说就是存储函数与常量的地方。C/C++写的成员函数,非成员函数都是在这里。 数据段:初始化的全局变量,初始化的静态变量 被编译器放在这里 BSS 段: 这里 阅读全文
posted @ 2020-06-18 09:55 sinpo828 阅读(1597) 评论(0) 推荐(0) 编辑
摘要:前述: golang 的关键字 defer 给出了一种,延时调用(RAII)的方式来释放资源。但是对于C/C却没有内置这种方便的关键字。对于经常需要手动管理内存的C/C尤其是C程序员这种特性显得无比重要。 这里给出了一种 C/C++ 下模拟实现 defer 的实现方案: 针对 C 语言基于 GCC/ 阅读全文
posted @ 2019-10-14 17:45 sinpo828 阅读(1116) 评论(0) 推荐(1) 编辑
摘要:一个小demo 在c/c++ 的项目编译时经常会遇到 “comp.c:59:42: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]” 这种错误。作为一个”合格的程序员“ 对这种编 阅读全文
posted @ 2019-05-29 12:38 sinpo828 阅读(6264) 评论(0) 推荐(2) 编辑
摘要:Abstract 之前写了一个非常mini的log库(也不算库把,自己瞎jb写的),里面几乎都是宏的实现。这里打算趁热打铁,把自己知道的几下子都贴出来,后续如果有新的收获会更新这个博文。 文笔拙劣,主要是给自己做个提醒。 运行时检测大小端 一目了然,不做解释。 #define is_big_endi 阅读全文
posted @ 2019-04-28 18:10 sinpo828 阅读(497) 评论(0) 推荐(0) 编辑
摘要:函数执行顺序 构造函数执行顺序: 虚基类构造函数 普通基类构造函数 成员变量构造函数 析构函数执行顺序: 与构造函数相反顺序 #include "iostream" using namespace std; class base { public: base() { cerr << __PRETTY 阅读全文
posted @ 2017-03-24 16:00 sinpo828 阅读(182) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示