C语言
这些年写的代码=屎山
这个作者很懒,什么都没留下…
展开
-
switch中多个case值对应一个执行语句
引言最近做电能表相关通信协议的工作,看了些开源代码,发现在一些有相同属性的变量处理上使用到了switch case语句,设计得比较精妙,当有多个属性相同的case值的时候可以执行具有相同属性的同一个语句,比如在通信协议中收到的电流、电压、有功功率帧数据都需要进行BCD码转float型的时候就可以用一个语句解决三种情况下的处理工作。简单示例#include <stdio.h>int main(){ int a=0; printf("input value原创 2021-04-27 18:07:23 · 10981 阅读 · 0 评论 -
C语言条件编译
引言最近又开始看一些开源项目的代码,一些常见的预处理指令平时只有在编写头文件的时候才会用到一些,还有就是注释掉一段内容的时候用的多一点,其他的预处理指令平时基本没用过,今天在看开源项目的时候在C文件中看到很多预处理指令看得云里雾里,所以打算停下来学习一下顺便总结之前学过的内容再上路头文件定义中常用宏定义#ifndef XXX_H#define XXX_H/* 中间声明一些要在C文件中定义的函数,当然也可以不在头文件中声明就在.C文件中直接定义,因为在C中如果你不在头文件中声明就直接定义,就原创 2020-12-27 23:43:43 · 148 阅读 · 1 评论 -
头文件中定义全局变量
引言这些天写的程序中用到了全局变量,一开始是在一个文件下做测试后来把文件按逻辑拆分了一下,不同的代码被放在了几个文件中,最后用Makefile来编译就遇到了今天的话题,怎么在头文件中定义全局变量呢?做法要想一个文件中的变量被一个工程中的其他多个文件同时访问就要借助extern关键字在C文件中定义在头文件中声明其他文件要用到该变量时直接引用头文件//如:parser.h中声明count、g_sigstop为全局变量#ifndef PARSER_H#define PARSER_Hexter原创 2020-08-14 21:11:05 · 5044 阅读 · 0 评论 -
strlen()、sizeof()与\0
引言:今天在用strlen函数的时候计算的结果突然让我惊讶了!完全不是自己所想的,学习了之后打算记录下来strlen()与\0字符串后面接数字,表示的是8进制的意思strlen()默认与\0截止int main(){ char *t0="hhhh\0222222";//"\0"后面接数字表示8进制最大可以是\077 char *t2="pppp0x00tttt"; char *t3="wwww00cccc"; char *t4="ooookkk\0k"原创 2020-05-28 22:25:34 · 853 阅读 · 0 评论 -
指针
常量指针与指针常量int n;const int * pc = &n; // pc定义为常量指针类型,不能通过pc改变指向地址中存的值,但pc指向地址可变// *pc = 2; // Error: n cannot be changed through p without a castpc = NULL; // OK: pc itself can ...原创 2020-02-29 12:09:52 · 779 阅读 · 0 评论 -
c语言中while(a)、if(a)、while(!a)、if(!a)、if(%a)是什么意思?
while(a) 表示当a!=0时执行循环,其等价于while(a!=0)。if(a) 同上。while(!a) 表示当a=0时执行循环,其等价于while(a==0)。if(!a) 同上。if(j%2)continue; 表示j%2!=0时执行continue;...转载 2019-07-17 18:51:05 · 45312 阅读 · 12 评论