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
嵌入式 C 语言中三块难啃的硬骨头
C语言在嵌入式学习中是必备的知识,审核大部分操作都要围绕C语言进行,而其中有三块“难啃的硬骨头”几乎是公认级别的。01指针指针公认最难理解的概念,也是让很多初学者选择放弃的直接原因指针之所以难理解,因为指针本身就是一个变量,是一个非常特殊的变量,专门存放地址的变量,这个地址需要给申请空间
C语言中三个重点知识,温习一下
正文C语言在嵌入式学习中是必备的知识,审核大部分操作都要围绕C语言进行,而其中有三块“难啃的硬骨头”几乎是公认级别的。0x01指针指针公认最难理解的概念,也是让很多初学者选择放弃的直接原因。指针之所以难理解,因为指针本身就是一个变量,是一个非常特殊的变量,专门存放地址的变量,这个地址需要给申请空间才
C语言实现面向对象三大特性 : 封装、继承、多态
不知道有多少人去了解过语言的发展史,早期C语言的语法功能其实比较简单。随着应用需求和场景的变化,C语言的语法功能在不断升级变化。虽然我们的教材有这么一个结论:C语言是面向过程的语言,C++是面向对象的编程语言,但面向对象的概念是在C