C++ 的单例模式为什么不直接全部使用 static,而是非要实例化一个对象?
开场前段时间在知乎回答了这样一个问题:为什么C++单例模式不能直接全部使用static变量和static函数呢?如果全部使用static的话,是不是也不会有多线程的问题了?而且“类型::方法”的访问方式比起先getInstance()再访问难道不是更加简单清晰吗?(还是说是为了附和“单例”这样一个字
嵌入式设备驱动程序库化?
一些朋友问我如何写出优秀的C代码,这不是一两句话就能够说清楚的,一份优秀的代码必然是多种编程技巧和设计思想结晶,所以还需一步一步的积累method,达到厚积薄发,所以今天这篇构建"库"思想的文章bug菌找来跟大家分享一下,大家也可以体会一下,每一句话
C++中的动态类型识别
1、所要解决的问题在前面的相同专辑文章中,跟大家介绍过虚函数,其中提到了基类的指针可以指向派生类,同时基类的引用也可以成为派生类的别名。比如是非常经典的例子:#includeus
1972年的C语言,掌控Windows、Linux、macOS等操作系统半边天
诞生于1972年的C语言已经50岁了,目前来看,它还像20岁的小伙一样活力四射,似乎永不会退休,并且正在赋能全世界重量级应用系统的运行。尽管C语言面世多年,甚至不少人用暮年来形容它,但它依然在为世界编程赋能,并且还将活跃很长一段
代码 | C语言根据可执行文件名获取进程运行信息
如下示例可根据可执行文件名获得线程数、虚拟内存占用大小、物理内存占用大小、进程PID、CPU占用率和进程启动次数等信息。1.程序源码main.c:#include#include#include#inclu
C++编程新手容易犯的 10 种编程错误
公司每年都会有一定的人员流动,相应地也会招一些应届生补充进来,指导应届生已经成为老员工的必修课了。平日里会我们会经常帮新人排查代码中的问题,在此过程中发现了C++新手容易犯的
C语言史上最愚蠢的BUG?
来自:酷壳-CoolShell链接:https://coolshell.cn/articles/5388.html原文:https://www.elpauer.org/2011/08/the-most-stupid-c-bug-ever/本文来自“ThemoststupidCbugever”,很有意
C语言确定大小端的4种方法
大小端的问题在很多面试笔试中都会遇到,最直接的考察是,笔试的时候,让你写一个代码,如何确定当前系统是大端还是小端的。什么是大端和小端呢?大端:高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。(CPU对操作数的存放方式是从高字节到低字节)小端:低位字节排放在内存的低地址端,高位字节排放在内
利用C语言结构体封装函数
C++语言类中可以封装函数,体现了模块操做的整体性,封装后的函数可以完成自己独特的功能,每个函数提供给你一个接口,使用者只需要通过这个接口传入合法的数值便可以得到想要的结果。函数封装具有保护性函数体内的变量是受
C++ 中不一样的重载
关于什么是重载想必大家都知道,无非就是参数个数不同,参数类型不同可以重载,这里我就不过多介绍啦。这里想分享C++中一个不一样的重载,即const重载。可以看下面的代码:structA{intcount(){std::cout
C 不再是一种编程语言
近日,Rust和Swift资深专家AriaBeingessner发布的一篇文章《C不再是一种编程语言》在HackerNews上引起了热烈讨论。原文链接:https://gankra.github.io/blah/c-isnt-a-langu
给大家收集了一些C语言代码优化的方法!
在本篇文章中,我收集了很多经验和方法。应用这些经验和方法,可以帮助我们从执行速度和内存使用等方面来优化C语言代码。简介在最近的一个项目中,我们需要开发一个运行在移动设备上但不保证图像高质量的轻量级JPEG库。期间,我总结了一些让程序运行更快的方法。在本篇文章中,我收集了一些经验和方法。应用这些经验和
C语言编码“注释”规范
如果领导给你一个项目的源码让你阅读,并理解重构代码,但里面一句注释都没有,我想这肯定是之前同事“删库跑路”了。看一份源码什么很重要?除了各种代码规范之外,还有一个比较重要的就是注释。注释虽然写起来很痛苦,但对保证代
19个 C 语言必杀技,宏定义的常用方法总结
写好C语言,漂亮的宏定义很重要!使用宏定义可以防止出错,提高可移植性,可读性,方便性等。下面列举了一些成熟软件中常用的宏定义。1.防止一个头文件被重复包含1#ifndefCOMDEF_H2#defineCOMDEF_H3//头文件内容4#
几点实用的C语言技巧
C语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非常简单,并且仍然有一些非常有用的语法技巧和功能,只是没有多少人知道罢了。一、指定的初始化很多人都知道像这样来静态地初始化数组:intfibs[]={1,1
嵌入式 C 语言中,goto 用得多吗 ?
什么是goto语句?goto语句被称为C语言中的跳转语句。用于无条件跳转到其他标签。它将控制权转移到程序的其他部分。goto语句一般很少使用,因为它使程序的可读性和复杂性变得更差。语法gotolabel;goto语句示例让我们来看一个简单
C语言中的"函数调用栈"一定要弄懂!
大家都知道函数调用是通过栈来实现的,而且知道在栈中存放着该函数的局部变量。但是对于栈的实现细节可能不一定清楚。本文将介绍一下在Linux平台下函数栈是如何实现的。栈帧的结构函数在调用的时候都是在栈空间上开辟一段空间以供函数使用,所以
C 语言 “??/ ” 这三个字符把工程师坑惨了
某C语言软件工程师接盘了前同事的项目,进度一拖再拖,最后发现问题出现在如下代码://注释语句??/a=b+c;请注意代码中的“??/”,就是这注释隐藏的很深,让项目一拖再拖。"??/"会被编译器当作/,变成C语言的换行符(多行代码连接符)
用C语言使用回调函数简单模拟委托与反射
今天看到一篇文章里面几个软件设计的概念还不错,可以参考学习:正文部分:函数是C语言的核心概念。主调函数(caller)调用
C语言如何递归读取文件夹下的所有文件?
项目开发过程中经常需要读取目录下所有文件,故总结此递归读取文件夹下所有文件的示例程序以作备忘。#include#include#include#includeintrea