关闭

程序喵大人

所属频道 单片机 公众号精选
  • 源码分析C++的string的实现

    我们平时使用C++开发过程中或多或少都会使用std::string,但您了解string具体是如何实现的吗,这里程序喵给大家从源码角度分析一下。 读完本文相信您可以回答以下问题: ▼ string的常见的实现方式有几种? ▼  string类的内部结构是什么样子? ▼  string内

    单片机
    2020-08-03
  • 3分钟,教你快速熟悉新项目!

    如何快速熟悉一个对你来说完全陌生的项目?这可能是很多人都会遇到的难题。但如果掌握了方法论,它也可以是一道加分题。 最近有位粉丝朋友也遇到了同样的问题,寻求我的意见,其实我和大家一样,走了不少弯路。痛定思痛,程序喵总结了下自己之前熟悉新项目的

    单片机
    2020-07-30
  • 他来了,他来了,C++17新特性精华都在这了

    程序喵之前已经介绍过C++11的新特性和C++14的新特性(点击对应文字,直接访问),今天向亲爱的读者们介绍下C++17的新特性,现在基本上各个编译器对C++17都已经提供完备的支持,建议大家编程中尝试使用下C++17,可以一定程度上简化代码编写,提高编程效率。 主

    单片机
    2020-07-23
    C++
  • C++14新特性的所有知识点全在这儿啦!

    前面程序喵介绍过C++11的新特性,这篇文章介绍下C++14的新特性。 「函数返回值类型推导」 C++14对函数返回类型推导规则做了优化,先看一段代码: #include using namespace std; auto func(int i) { return i;} int main() { cout << func(4) << e

    单片机
    2020-07-20
    C++
  • gcc a.c 究竟经历了什么?

    你知道一次gcc命令究竟经历了什么吗? 我们先来看一段C语言示例源代码: // test.cc#include int main() { printf("Hello 程序喵\n"); return 0;} 编译运行 $ gcc test.cc$ ./a.outHello 程序喵 如图一, gcc构建过程分解 我们平时都会使用gcc来编

    单片机
    2020-07-06
  • 很高兴认识你!

    非常感谢大家的关注,为了不让大家关注的不明不白,在此用三言两语介绍下小弟,如果大家愿意交个朋友,交流编程,求职,篮球,提升自我那些事儿,可以扫描文末二维码哈。   我来自东北28线城市的农村,上学的时候打篮球占据了我一半以上的生活,是的,比学习

    单片机
    2020-07-06
  • Linux如何调试内存泄漏

    内存泄漏是指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。 我们平时开发过程中不可避免的会

    单片机
    2020-07-06
  • c++代码整洁之道

    整洁的代码在团队中无疑是很受欢迎的,可以高效的被其它成员理解和维护,本文参考《C++代码整洁之道》和《Google C++编码规范》,结合自己的一些想法整理如下: C++本身作为面向对象语言,首先介绍下面向对象一般涉及到的开发原则。 面向对象开发原则 依赖倒

    单片机
    2020-07-06
  • 互联网人,天生就是送外卖的料!

    2020,形势大变! 过去的互联网骄子们,如今不得不面对现实, 纷纷另寻出路。 那么,他们转行后都适合做什么呢? 让我们一探究竟: ·自媒体人· - - - ·乙方· - - - ·程序员· - - - ·产品经理· ·媒介· ·策划· ·商务· ·设计· ·画手· ·社群运

    单片机
    2020-07-06
  • 多线程中如何使用gdb精确定位死锁问题

    在多线程开发过程中很多人应该都会遇到死锁问题,死锁问题也是面试过程中经常被问到的问题,这里介绍在c++中如何使用gdb+python脚本调试死锁问题,以及如何在程序运行过程中检测死锁。 首先介绍什么是死锁,看下维基百科中的定义: 死锁(英语:Deadlock),

    单片机
    2020-07-06
  • Linux共享库如何进行版本控制

    大家平时使用Linux系统过程中可能都见过文件系统里有好多带版本号的共享库,如下: lrwxrwxrwx 1 root root 21 Mar 25 18:33 libDeployPkg.so.0 -> libDeployPkg.so.0.0.0-rw-r--r-- 1 root root 31304 Mar 25 18:33 libDeployPkg.so.0.0.0lrwxrwxrwx 1 root

    单片机
    2020-07-06
  • JNI编程如何巧妙获取JNIEnv

    程序喵之前都在介绍Linux和C++方面的知识,这里穿插一篇Java JNI相关的知识点,总结一下自己平时工作心得,相信会对做JNI编程的同学有所帮助。 背景: 作者目前在做Android项目,但大多数逻辑都会在Native层实现,不可避免的需要在Native层使用C++去调用Java

    单片机
    2020-07-06
  • Linux 为什么要动态链接?与静态链接的区别是什么?

    在前面的文章中程序喵已经介绍过静态链接的原理,这篇文章我们来解密动态链接。 老规矩,先抛出几个问题: 为什么要进行动态链接? 如何进行动态链接? 什么是地址无关代码技术? 什么是延迟绑定技术? 如何在程序运行过程中进行显式链接? 为什么要进行动态

    单片机
    2020-07-06
  • 面试系列之指针和引用的使用场景

    先抛出两个问题: 指针和引用有什么区别? 什么时候应该使用指针?什么时候应该使用引用? 01 指针和引用的区别 首先看一段代码: int a = 1;int b = 2;int *c = nullptr;c = &a;int &d = b; 指针其实就是一个存放内存地址的整数,这个整数表示的是被指向的变

    单片机
    2020-07-06
  • Linux可执行文件如何装载进虚拟内存

    开篇先抛出几个问题,之后逐个击破: 什么是进程的虚拟地址空间?为什么进程要有自己的虚拟地址空间,这样做有什么好处? 我们都听说过页映射,什么是页映射,操作系统为什么要以页映射方式将程序映射到进程地址空间,这样做有什么好处?程序运行过程中发生页

    单片机
    2020-07-06