随笔分类 -  C

摘要:执行结果,更新了我的认知 阅读全文
posted @ 2021-07-15 11:22 我爱茜茜公主 阅读(264) 评论(0) 推荐(0) 编辑
摘要:用到的软件:Winhex软件 步骤: 1、编译出boot.hex、app.hex 2、复制一份boot.hex,并改名为boot_app.hex 3、把Boot的最后一行去掉,再把App的所有文件复制到Boot后即可 具体如下: :020000040800F2 //boot起始地址 :1000000 阅读全文
posted @ 2021-06-15 13:49 我爱茜茜公主 阅读(931) 评论(0) 推荐(1) 编辑
摘要:inline void function(void) { } 内联函数代码直接放到调用者中 内联函数定义 慎用内联 最好将内联函数放在头文件中(inline不建议声明和定义分离,分离会导致链接错误,因为inline被展开,就没有函数地址了,链接就会找不到) 文章地址1 文章地址2(一般将那些短小的、 阅读全文
posted @ 2021-06-06 22:40 我爱茜茜公主 阅读(60) 评论(0) 推荐(0) 编辑
摘要:文章地址:http://c.biancheng.net/view/2035.html union 共用体 共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员 共用体占用的内存等于最长的成员占用的内存 在同一个存储空间中存储不同的数据类型 应用1: 1 struct 2 { 3 char 阅读全文
posted @ 2021-05-13 10:03 我爱茜茜公主 阅读(171) 评论(0) 推荐(0) 编辑
摘要:文章地址:地址 作者:江南一散人 预编译 把#include指令中引用的头文件展开在当前源文件中 把#define指令定义的宏标记在源文件中引用该标记的地方进行展开 对#if、#ifdef、#elif、#endif条件编译指令进行处理,把条件不满足的代码删除 删除所有注释信息 其它处理,添加行号和文 阅读全文
posted @ 2021-05-11 17:18 我爱茜茜公主 阅读(278) 评论(0) 推荐(0) 编辑
摘要:#include实际上就是把头文件里的内容复制到对应的位置; 避免C语言代码重复包含文件; 1 #ifndef _H_ 2 #define _H_ 3 4 #endif 文章地址:地址 阅读全文
posted @ 2021-05-11 16:41 我爱茜茜公主 阅读(83) 评论(0) 推荐(0) 编辑
摘要:文章地址:今日头条 作者:IT刘小虎(嵌入式时代) 浮点数并不总是能够精确的存储和处理浮点数,可以使用整形运算代替浮点运算 计算机使用二进制,人类常用十进制表示数字,遗憾的是,十进制能精确表示的数字,并不一定也能使用二进制表示精确 例如:分数1/3,十进制数是无法精确表示这一数字的; 0.1在二进制 阅读全文
posted @ 2021-05-11 08:39 我爱茜茜公主 阅读(64) 评论(0) 推荐(0) 编辑
摘要:用符号XOR或者 ^ 表示,同值取0,异值取1。它与布尔运算的区别在于,当运算符两侧均为1时,布尔运算的结果为1,异或运算的结果为0 运算定律:结合律、交换律;对于任何数x,都有x^x=0,x^0=x;自反性 A XOR B XOR B = A xor 0 = A 判断两个值是否不同 例如,所有的程 阅读全文
posted @ 2021-05-10 18:00 我爱茜茜公主 阅读(128) 评论(0) 推荐(0) 编辑
摘要:文章地址:https://www.runoob.com/w3cnote/c-callback-function.html 1、什么是回调函数? 2、为什么要使用回调函数? 解耦l 3、怎么使用回调函数? 4、怎么使用带参数的回调函数? 阅读全文
posted @ 2021-05-08 18:40 我爱茜茜公主 阅读(44) 评论(0) 推荐(0) 编辑
摘要:条件编译1 1 #if (A == 10) 2 3 #else 4 5 #endif 条件编译2 1 #if define A 2 3 #endif 1 #if !define A 2 3 #endif 条件编译3 1 #ifdef A 2 #endif 1 #ifndef A 2 #endif 阅读全文
posted @ 2021-05-08 10:40 我爱茜茜公主 阅读(61) 评论(0) 推荐(0) 编辑
摘要:数组下标1 int idx=0; 2 3 idx++; 4 5 idx %= BUF_SIZE; 求余运算符“%”,二元运算符,具有左结合性。参与运算的量均为整型。求余运算的结果等于两个数相除后的余数 阅读全文
posted @ 2021-05-07 10:43 我爱茜茜公主 阅读(237) 评论(0) 推荐(0) 编辑
摘要:参考地址:http://www.51hei.com/bbs/dpj-39303-1.html 1 typedef union 2 { 3 __u32 dwval; // 这里是对寄存器整体赋值修改 4 struct 5 { 6 __u32 io_map_sel : 1 ; // default: 0 阅读全文
posted @ 2021-05-07 09:44 我爱茜茜公主 阅读(253) 评论(0) 推荐(0) 编辑
摘要:参考文档:https://www.cnblogs.com/xidongs/p/5655440.html 从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要个各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放, 阅读全文
posted @ 2021-05-07 09:11 我爱茜茜公主 阅读(164) 评论(0) 推荐(0) 编辑
摘要:C语言中使用静态函数的好处(1)静态函数会被自动分配在一个一直使用的存储区,直到退出程序,避免了调用函数的压栈出栈,速度快很多。(2)static指函数的作用域仅局限于本文件。不用担心自己定义的函数是否会与其他文件的函数同名 阅读全文
posted @ 2021-05-06 15:57 我爱茜茜公主 阅读(556) 评论(0) 推荐(0) 编辑
摘要:int foo (int n){ int i = 0; int j = 0; for (i = 0; i < 10; i++) { j += i; if (i == n) { return j; } }} int main (void){ printf ("p = %d\n", foo (7)); 阅读全文
posted @ 2021-03-03 19:23 我爱茜茜公主 阅读(1057) 评论(0) 推荐(0) 编辑
摘要:结构体成员在内存中是如何存储的呢?到底是怎么存储的呢?按字节对齐的方式存储的! 声明结构体类型时,各类型成员的前后位置会对结构体变量所占的字节数产生影响; 内存对齐可以大大提升内存访问速度,是一种用空间换时间的方法;内存不对齐会导致每次读取数据都会读取两次,使得内存读取速度减慢 内存对齐:1、在有# 阅读全文
posted @ 2021-02-01 15:30 我爱茜茜公主 阅读(127) 评论(0) 推荐(0) 编辑
摘要:1、数组清零-memset() :memset()函数原型是extern void *memset(void *buffer, int c, int count) c是赋给buffer的值,count是数组长度 2、sizeof() 数组在内存中占用的存储空间,以字节数为单位,sizeof()是运算 阅读全文
posted @ 2020-04-19 21:11 我爱茜茜公主 阅读(124) 评论(0) 推荐(0) 编辑
摘要:1、(堆栈)https://www.cnblogs.com/qsyll0916/p/8013136.html 2、(堆栈)https://blog.csdn.net/Emoeror_Zhang/article/details/94737249?depth_1-utm_source=distribut 阅读全文
posted @ 2020-04-19 14:33 我爱茜茜公主 阅读(123) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示