C语言笔记
文章平均质量分 78
米杰的声音
technical support please call WeChhao XiYuansEcho
展开
-
【C/C++】C编程技巧
const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。原创 2022-08-12 11:27:50 · 451 阅读 · 0 评论 -
【C语言】常用的字符串处理函数
介绍一下C语言常用的字符串处理函数。原创 2022-08-11 16:06:20 · 2736 阅读 · 0 评论 -
【芯片驱动】SMG42630的固定步数实现
SGM42630产生固定数量PWM原创 2022-08-07 10:51:28 · 665 阅读 · 0 评论 -
【C语言】#pragma pack(1) 和#pragma pack()
#pragma pack(1) 设置结构体的边界对齐为1个字节,也就是所有数据在内存中是连续存储的。原创 2022-06-08 11:13:54 · 4197 阅读 · 2 评论 -
【C语言】typedef struct 和 struct 使用区别
1. 什么是 typedef ? typedef 可以为某一类型自定义名称,与#define类似,但区别如下:typedef和#define区别 typedef define(预处理器) 创建的符号名字只限于类型,不能用于值。 明示常量 typedef由编译器解释,不是预处理器 #define PX printf("x id %d. \n", x) 可声明一系列变量 不可以声明一系列变量 typedef int8 BYTE;则可以使用BYTE...原创 2022-04-26 18:05:24 · 3255 阅读 · 0 评论 -
【AT89C52】用结构体进行数据定义
接着上面的话题,我们将数据通过串口接收中断接收到我们事先定义好的数组里面,数据也经过帧头和校验和的校验了,接下来就要将这组数据进行解析。传统的方法我们直接提取数组的内容,接收的数据定义有uint8或者int8还有uint16,int16这种数据,如果分大端小端的话,我们还要进行转换。有的为了节约数据长度,例如开关量,只是利用到了一个字节某个位。例如我这次接收的数据是一组环境温度数据。内容如下:1. 多参数传感器数据类型表 字 节 名称 说明原创 2022-04-25 21:30:09 · 760 阅读 · 0 评论 -
【C语言】结构体数组的妙用
1. 什么场合会用到结构体数组举个例子,我控制13个电机,电机参数申明一个结构体。正常结构体类型实例化要实例化13个结构体变量。因为一个结构体变量只能存储一组信息,再挨个赋值很麻烦。由此引出了结构体数组。2. 结构体数组申明方法2.1先定义结构体类型,后定义结构体数组struct UploadFormat{uint8 head[2];uint16 eco2;uint8 checksum;};struct UploadFormat line[23];2.2在...原创 2022-04-25 20:13:34 · 1330 阅读 · 0 评论 -
【C语言】枚举enum关键字
1. 前言枚举是什么?(一个被命名的整型常数的集合 )集合又是什么意思呢?集合(一个或多个确定元素所构成的整体)。只要是能使用整型int常量的地方就可以使用枚举常量。枚举类型的目的是提高程序的可读性。 它的语法与结构的语法相同。2. enum常量2.1 默认值声明创建了DAY作为标记名, 允许把enum DAY作为一个类型名使用。enum DAY { MON, TUE, WED, THU, FRI, SAT, SUN }; enum { MON, TUE, WED, THU,原创 2022-03-19 14:31:22 · 1555 阅读 · 0 评论 -
【QT&C】char和unsigned char的区别
问题1:关于以16进制打印字符型出现FFFF**的问题原创 2021-11-21 12:53:11 · 1387 阅读 · 0 评论 -
【C语言】if、if else、else、switch的用法
多重判断:1.1 if如果程序中判断事件很多,全部用if的话,会遍历整个程序,效率低。1.2 else if如果if的判断没有通过,则进行下面的else if,如果当前的else if判断通过,则只执行当前else if的语句。如果没通过,则一直执行下面的else if判断。1.3 elseelse为最后的分支,如果在else之前的if、else if判断都没有通过就会执行else。注:在一条if条件判断中,可以有无数条else if,但是只能有一个else。在一个if条件判断中原创 2021-09-01 10:36:30 · 5872 阅读 · 0 评论 -
【C语言】选择排序+求出以前数组的位置
#include<stdio.h>#include<math.h>void SelectionSort(int *arr, int n) { for (int i = 0; i < n; i++) { int Maxkey = abs(arr[i]); for(int j=i; j<n; j++) { if(Maxkey<abs(arr[j])) .原创 2021-09-01 00:00:34 · 3225 阅读 · 0 评论 -
【C语言】条件编译的用法(预处理)
如果我想在一个程序内自由切换TCP_Server和TCP_Client两个函数,同时有要求两个函数不能同时运行,如果使用传统的屏蔽功能固然可以,但是屏蔽来屏蔽去,来回切换,屏蔽起来也很不方便,时间久了我们就搞不懂程序为什么要屏蔽,弊端很大。由此我们引入了条件编译这样好的方法原创 2021-07-28 17:45:44 · 3446 阅读 · 1 评论 -
【C应用】函数指针的一种应用
函数指针和变量指针是一个意思,都是一个地址。不同是函数是代码块的集合,某一位置的连续值,实现的是一种方法,变量是某一位置的一个确定的值。基于这两种元素的共同特性,我们可以将其集成在一个结构体里面,变成我们C++常说的类。比如我有一个函数:我们定义pBuffer[]为一个数组,void Fun1(uint8_t *pBuffer){}该数组在Fun1中做作为数组参数,C语言中函数调用参数是采用拷贝该参数的方式进行调用,也就是常说的“传值调用”。但是被传递的参数是一个数组名称,也就是原创 2021-05-24 19:19:20 · 1219 阅读 · 1 评论 -
【C语言】sprintf和strcat的用法
sprintf()sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [, argument] ... );sprintf函数的功能是它把结果输出到指定的字符串中.sprintf的第一个参数是目的字符串,因为C语言在进行字符串操作时不检查字符串的空间是否够大,所以可能会出现数组越界而导致程序崩溃的问题。即使碰巧,程序没有出错,也不要这么用,因为早晚会出错。所以一定要在调用sprintf之前分配足够大的空间原创 2020-12-16 15:46:35 · 1740 阅读 · 0 评论 -
【C语言】深入理解if条件判断应该注意的问题---f(“-_-“)?
今天有小明给我发了一串代码,功能是根据输入的成绩来判断成绩是否合格。代码如下:#include "stdio.h"void main(){ int a; printf("请输入成绩:\n"); scanf("%d",&a); if("a<=100 && a>=60") printf("成绩合格\n"); else if("a<60 && a>0") printf("成绩不合格\n"); else i原创 2020-11-05 00:55:22 · 1888 阅读 · 1 评论