
C语言
MHai
顺境不惰,逆境不馁,以心制境,万事可成
展开
-
嵌入式常用宏定义分析
这段代码定义了一个宏,用于向给定地址addr处写入一个字节数据reg。该宏的作用是将给定的地址addr转换为类型的指针,然后将字节数据reg转换为类型,并将其写入该地址处。需要注意的是,volatile关键字用于告诉编译器该地址处的数据可能会被外部因素改变,因此在写入数据时应该直接写入内存,而不是使用缓存的值。这对于向外设寄存器等需要实时更新的数据进行写入非常重要。此宏可以用于向特定地址写入一个字节的数据。例如,将向地址0x12345678写入字节数据0x55。这段代码定义了一个宏。原创 2023-07-27 10:15:45 · 303 阅读 · 0 评论 -
ether_crc_le()函数解析
ether_crc_le()函数解析原创 2023-07-25 21:44:34 · 426 阅读 · 0 评论 -
经典指针程序
*p 表示以p的内容为地址的变量指针就是地址,地址就是指针地址是内存单元的编号。指针变量是存放地址的变量指针的本质就是一个操作受限的非负整数。* 的含义1.乘法;2.定义指针变量 int *p; //定义一个名字叫p的变量,int * 表示p只能存放int 变量的地址 3.指针运算符 该运算符放在已经定义好的指针变量的前面,如果p是一个已经定义好的指针变量,则 *p表示以p的内容为地址的变量经典指针程序_互换两个数字#include<stdio.h>#in原创 2022-05-02 23:44:42 · 230 阅读 · 0 评论 -
内存泄漏 字符串 C语言标准库函数 结构体
内存泄漏:程序刚跑起来很好,跑几小时或者几天,程序崩溃while(1){ sleep(1); int *p=malloc(1024);//malloc申请的空间,程序不会主动释放,linux中的话,程序结束后系统会回收空间;}//如何避免?1)注意循环中有没有一直申请;2)及时合理释放内存空间:free(p); p=NULL;字符串定义char *pstr="hello world,this is my world!\n";printf("%s\n",pstr);//字符串用占.原创 2021-07-05 22:52:18 · 258 阅读 · 3 评论 -
if else do--while for while
选择语句if else#include<stido.h>#include<stdlib.h>int main(){ int num; printf("please input a num:\n"); scanf("%d",&num); if(num >= 100){ ptintf("嫁\n"); }else{ printf("缘分到此结束\n"); } system("pause"); return 0;}循环语句原创 2021-07-05 21:45:56 · 152 阅读 · 0 评论 -
指针(二)
1)定义一个指针数组p,它由4个指向整型数据的指针元素组成int *p[4];2)p为指向包含4个元素的一堆指针数组的指针变量int (*p)[4]3)f为返回整型函数值的函数;int f();4)p为返回一个指针的函数,该指针指向整型数据;int* p();5)p为指向函数的指针,该函数返回一个整型变量;int (*p)();6)p是一个指针变量,它指向一个整型数据的指针变量;int **p;7)p是一个指针变量,基类型为void(空类型),不指向具体的对象;void原创 2021-02-04 22:57:41 · 478 阅读 · 0 评论 -
指针(一)
指针1、 变量的两种访问方式变量名:花店名地址:花店的地址2、 &取地址,取变量名所代表的的变量地址int a;&a(0x660cff0)3、*代表的是一种字符,跟+ - X /运算符类似,该运算符的功能是取出内存地址中数据的值(取内容)4、指针=地址指针变量存放指针的变量存放地址的变量5、变量整型变量,存放的是整数:int a ; a=10;字符变量,存放的是字符:char c; c=‘A’;指针变量,存放的是指针:int *p; p=原创 2021-02-01 22:46:06 · 182 阅读 · 0 评论 -
数组(二)
数组的初始化及找大小eg:#include <stdio.h>#include <stdlib.h>/* 提示用户输入5个数,找到最高分,找到最低分 ,算出输入成绩的平均分*/int main(){ int i; int max; int min; int total = 0 ; float average; int datas[5]={0}; //1.定义一个5个整型数的数组 //2.初始化数组 for(i=0原创 2021-01-19 22:38:33 · 242 阅读 · 0 评论 -
数组(一)
数组是数据的整合1-100;数组的数组都是同类型的;数组的地址是连续的。数组的基本使用定义:类型 数组名 大小1、int array[100];//没有初始化的数组,仅仅申请了100个整数的内存空间;2、int array2[3]={1,2,3};//完全初始化的数组,申请了三个整数的内存空间,并赋值三个数1、2、33、int array3[100]={1,2,3};//不完全初始化的数组,申请了100 个整数的内存//空间,但仅赋值了三个数,并放在前三个4、int n; n =1原创 2021-01-18 23:15:00 · 158 阅读 · 1 评论 -
函数(二)
函数类别函数定义有几种情况:1、无返回值无参数2、无返回值有参数3、有返回值有参数4、有返回值有多个类型的参数5、有返回值有多个类型的参数6、根据需求各种组合都行参数:个数 类型返回值类型eg:#include<stdio.h>int buyRice(int a){ printf("买%d斤米\n",a); a++; printf("jinShu:=%d\n",a);}int main (){ int a = 30; buyRice(3原创 2021-01-17 22:35:40 · 122 阅读 · 0 评论 -
函数
1、函数的定义:是一个功能模块,它把实现某个功能的代码包含起来,并起一个函数名,供别人调用,是程序运行中包装起来的一个步骤。2、如何定义一个函数?函数名形式参数函数体:代码块返回值3、如何调用一个函数?函数名(实际参数)函数名()4、为什么要函数调用?代码更好看可复用性强定位问题分工5、函数可以多级调用eg:#include<stdio.h>#include<stdlib.h>void buyRice(int jin原创 2021-01-12 22:40:39 · 219 阅读 · 0 评论 -
C语言的程序框架
##C语言的程序框架main是程序的入口,操作系统启动一个程序,先找整个程序中main的出现位置。main是函数名称没加上括号才算函数。eg:#include<stdio.h>#include<stdlib.h>int main(){ printf("yxm\n"); system("pause"); return 0;}注意: int和return 0 是配套的。一般函数返回给操作系统,如果正常返回0,正数;出错,返回负数。初学者特别要注意代码的格式,从一原创 2021-01-10 17:03:47 · 3838 阅读 · 0 评论