关闭

程序喵大人

所属频道 单片机 公众号精选
  • 面试系列之指针和引用的使用场景

    指针和引用有什么区别?什么时候应该使用指针?什么时候应该使用引用?

  • 多线程中如何使用gdb精确定位死锁问题

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

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

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

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

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

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

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

    单片机
    2020-07-06
  • 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
  • 互联网人,天生就是送外卖的料!

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

    单片机
    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
  • 他来了,他来了,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++
  • 很高兴认识你!

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

    单片机
    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
  • 程序一定要从main函数开始运行吗?

    对于静态链接先提出两个问题: Q: 每个目标文件都有好多个段,目标文件在被链接成可执行文件时,输入目标文件中的各个段如何被合并到输出文件? A: 合并相似的段,将所有的.text段合并到输出文件的.text段,将所有的.data段合并到输出文件的.data段。 Q: 链接

    单片机
    2020-07-06
  • 什么时候需要使用volatile关键字

    想必大家平时都见过volatile关键字,可是大家知道什么时候需要使用volatile关键字吗? 直接看下面代码: int a = 100; while (a == 100) { // code} 这段程序编译时,如果编译器发现程序始终没有企图改变a的值,那它可能就会优化这段代码,变成while(true)的

    单片机
    2020-07-06