随笔分类 -  C语言

学习过程中的一些难点重点记录。
摘要:在 C 语言中,以 # 开头的语句被称为预处理指令(Preprocessing Directive),它们由 C 语言的预处理程序(Preprocessor)在编译阶段之前进行处理,用于对源代码进行文本替换、条件编译、文件包含等操作,不直接参与程序的执行逻辑,但会影响最终编译的代码内容。 常见的预处 阅读全文
posted @ 2025-09-28 14:08 Sean_hn 阅读(27) 评论(0) 推荐(0)
摘要:限制作用域和保持状态 ‌函数static的作用主要体现在限制作用域和保持状态两个方面。‌‌1 限制作用域 ‌静态全局变量‌:在全局变量前加上static关键字,该变量就被定义成为一个静态全局变量。这种变量只在定义该变量的源文件内有效,无法被其他源文件中的函数访问,从而避免了全局变量在不同源文件间引起 阅读全文
posted @ 2024-12-31 15:33 Sean_hn 阅读(173) 评论(0) 推荐(0)
摘要:文章来自:https://zhuanlan.zhihu.com/p/472808057 相关文章连接:头文件包含是可以嵌套的_【C语言】- 预处理指令3 - 文件包含! 很多事不深入以为自己懂了,但真正用到项目上,才会发现其中的问题。曾以为自己写C语言已经轻车熟路了,特别是对软件文件的工程管理上,因 阅读全文
posted @ 2024-12-20 16:17 Sean_hn 阅读(630) 评论(0) 推荐(0)
摘要:文章目录 一、什么是回调函数 二、回调示例 三、回调函数的应用场景 四、回调函数的优点 五、回调函数的注意事项 一、什么是回调函数回调函数是一种在编程中常见的概念,它是指一个函数作为参数传递给另一个函数,并且在特定事件发生或条件满足时被调用执行的函数。 二、回调示例举个简单的例子来说明,以下是一个简 阅读全文
posted @ 2024-04-27 23:21 Sean_hn 阅读(8117) 评论(0) 推荐(3)
摘要:在使用C语言编写程序时,经常会遇到这样的情况:我们希望在头文件中定义一个全局变量,并将其包含在两个不同的C文件中,以便这个全局变量可以在这两个文件中共享。举个例子,假设项目文件夹"project"下有三个文件:main.c、common.c和common.h。在这种情况下,我们希望声明一个字符型变量 阅读全文
posted @ 2023-11-25 17:18 Sean_hn 阅读(995) 评论(0) 推荐(0)
摘要:extern和static extern和static两者之间是有一种相克的关系:用了extern的不能用static,用了static的不能用extern, extern是声明让别的文件中能够使用, extern用于对全局变量的声明,通常在头文件声明,使全局变量值能在多个文件之间传递 static 阅读全文
posted @ 2023-11-25 16:58 Sean_hn 阅读(332) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2023-11-02 15:53 Sean_hn 阅读(35) 评论(0) 推荐(0)
摘要:switch(data) { case 1: return 1; break;//break就没有意义了! case 2: return 2; break; case 3: return 3; break; } 解决思路 return是直接结束当前函数返回 break是直接结束当前循环返回 exit 阅读全文
posted @ 2022-07-19 17:32 Sean_hn 阅读(1642) 评论(0) 推荐(0)
摘要:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。②-:有-表示左对齐输出,如省略表示右对齐输出。③0:有0表示指定空位填0,如省略表示指定空位不填。 例:a=0x05; printf("%X,a) //5 printf("%02X,a) 阅读全文
posted @ 2021-04-16 15:53 Sean_hn 阅读(440) 评论(0) 推荐(0)
摘要:在用到 sizeof 和 strlen 的时候 通常是计算字符串数组的长度 从这个例子可以看得很清楚两者的区别: char str[20]="0123456789"; int a=strlen(str); //a=10; >>>> strlen 计算字符串的长度,以结束符 0x00 为字符串结束。  阅读全文
posted @ 2021-03-26 16:06 Sean_hn 阅读(285) 评论(0) 推荐(0)
摘要:memcpy是memory copy的缩写,意为内存复制,在写C语言程序的时候,我们常常会用到它。 它的函原型如下: 1 void *memcpy(void *dest, const void *src, size_t count); 其总共有三个参数 第一个参数( void *dest ):用于存 阅读全文
posted @ 2021-01-25 11:18 Sean_hn 阅读(945) 评论(0) 推荐(0)
摘要:定义: 对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。例如,a ? b : c ? d : e将按a ? 阅读全文
posted @ 2021-01-20 12:57 Sean_hn 阅读(275) 评论(0) 推荐(0)
摘要:内容来自网络: 一:为什么要讲volatile 因为,很多”面试官”自己找不到能够测试应聘者的好的方式,所以就google了一下,发现了”嵌入式经典的0x10个面试题”,于是乎就拿来直接问了。我想第一个想到用这个来提问应聘者的人绝对是值得我们仰慕的。 二:Volatile官方说明 Indicates 阅读全文
posted @ 2020-12-14 21:00 Sean_hn 阅读(139) 评论(0) 推荐(0)
摘要:静态变量是这样的: 静态变量的内存是整个程序开始就分配了内存,整个程序结束后内存才消失! 动态变量的就是用的时候才动态分配,用完之后就消失了! 静态变量给了变量初始的值,然后如果在程序中该值有变化的,那当前的值就是变化后的值,这个是它的原理搜索. 有时希望函数中的局部变量的值在函数调用结束后不消失而 阅读全文
posted @ 2020-12-14 20:54 Sean_hn 阅读(158) 评论(0) 推荐(0)
摘要:在C语言中有十进制,十六进制,八进制;没有二进制的定义,在C51中使用十六进制表示有时不太直观,下面介绍几种方法表示二进制[均来自网络] 方法一 #define _BIN(a,b,c,d,e,f,g,h) ((a<<7)+(b<<6)+(c<<5)+(d<<4)+(e<<3)+(f<<2)+(g<< 阅读全文
posted @ 2020-12-14 20:50 Sean_hn 阅读(645) 评论(0) 推荐(0)
摘要:如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你 阅读全文
posted @ 2020-12-14 20:43 Sean_hn 阅读(320) 评论(0) 推荐(0)
摘要:在C中,正常情况下,我们只能从函数中返回一个值。但在有些情况下,我们需要从函数中返回多个值,此时使用数组或指针能够很好地完成这样的任务。这里是一个示例,这个程序使用一个整型数组作为参数,并将数组元素的和与积返回给调用函数。下面是C代码,这是一种常见情况。下面给出实现技巧: 1. #include 2 阅读全文
posted @ 2020-12-14 20:26 Sean_hn 阅读(3378) 评论(0) 推荐(0)
摘要:const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。 阅读全文
posted @ 2020-12-14 20:19 Sean_hn 阅读(163) 评论(0) 推荐(0)
摘要:code是keil C51里面的关键字,一般用于定义常量数组,意思是告诉编译说把这个数组放在ROM存储。使用ROM(程序存储器)的好处是加快读取速度,不占用系统资源。 unsigned char code table[]; 表示分配一个指向code区的指针,指针本身在默认存储区。 code unsi 阅读全文
posted @ 2020-12-14 20:18 Sean_hn 阅读(853) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-12-14 20:14 Sean_hn 阅读(465) 评论(0) 推荐(0)