
C语言
lne8734
嵌入式软件开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
volatile和线程安全
1.volatile的作用,防止编译器优化。例如一个线程需要操作一个全局变量,为了使得效率更高,它会把这个全局变量首先加载到通用寄存器中,以后再次操作这个全局变量的时候,他将直接从寄存器中取出数据,而不是这个变量的实际地址处得到数据。假如在这期间一个线程或者一个中断打断了程序的执行,并且把这个全局变量的值改了。再回到先前的线程,他将取得一个过期的数据,这显然不是我们想要的。一般说来,volatile 用在如下的几个地方:1) 中断服务程序和其他任务共享的变量应该加 volatile。2) 多任务环境下原创 2022-02-20 18:55:41 · 940 阅读 · 0 评论 -
用位段、宏分别实现寄存器的位定义
用位段、宏分别实现寄存器的位定义1. 一个32位寄存器描述:中断使能寄存器(IER)寄存器位 名称 属性 复位值 描述 31 : 8 RFU —— 0x0 RFU(未被使用的位) 7 PTIME R/W 0x0 略 6:3 RFU —— 0x0 RFU 2 ELSI R/W 0x0 略 1 ETBEI R/W 0x0 略 0 ERBFI R/W ...原创 2018-06-04 21:11:19 · 1435 阅读 · 0 评论 -
循环队列-队列的顺序表示和实现1
/******************************************************************************/// 循环队列-队列的顺序表示和实现1/******************************************************************************/#define Queue_SIZE ...原创 2018-06-12 22:01:52 · 494 阅读 · 0 评论 -
循环队列-队列的顺序表示和实现2
/******************************************************************************/// 循环队列-队列的顺序表示和实现2// linux内核循环队列kfifo思想改编,性能超级高,FIFO性能优化的关键点:// 1.队列大小为2的幂是为了使x % M == x & (M-1) 为真,位与运算的效率要比求余数// ...原创 2018-06-12 22:04:11 · 274 阅读 · 0 评论 -
循环队列-队列的顺序表示和实现3(linux内核实现)
/******************************************************************************/// 循环队列-队列的顺序表示和实现3(linux内核实现)/******************************************************************************/struct kfi...原创 2018-06-12 22:06:12 · 747 阅读 · 0 评论 -
C语言宏中的do{}while(0)和语句表达式
C语言宏中的do{}while(0)和语句表达式1. 宏中的do{}while(0)请看下面一段代码:#include <stdio.h>#define swap(a, b) {int t = a; a = b; b = t;}int main(void){ int x = 1; int y = 2; int z = 3;...原创 2018-07-26 19:50:40 · 876 阅读 · 0 评论 -
C语言编程规范
C语言编程规范.pdfC语言国际规范-ISO/IEC 9899:201x.pdf1 排版1.1 程序块缩进风格程序块要采用缩进风格编写,缩进的空格数为 4 个,对齐只使用空格键,不使用 TAB 键。以免用不同的编辑器阅读程序时,因 TAB 键所设置的空格数目不同而造成程序布局不整齐。1.2 程序中的空行相对独立的程序块之间、变量说明之后必须加空行。示例:如下例子不符合规...原创 2018-07-26 20:15:36 · 1615 阅读 · 0 评论 -
SHA1--C语言实现--openssl-1.1.1改写(自动匹配芯片大小端)
改写自 openssl-1.1.1的SHA1的C语言实现,高效,自动匹配处理器大小端# define SHA_LBLOCK 16# define SHA_CBLOCK (SHA_LBLOCK*4)/* SHA treats input data as a * contiguous array...原创 2018-11-03 20:28:18 · 1157 阅读 · 0 评论 -
VSCode离线安装C/C++插件以及依赖包
网上有很多关于VSCode离线安装C/C++插件的博客,在这里我就不加累述了,其实完成这一步,插件还并不能正常使用。因为插件还有许多依赖包需要联网下载,如果电脑没有联网的话,将会下载依赖包超时Updating C/C++ dependencies... Downloading package Error:解决办法如下:1.找到你安装vscode.cpptools插件的目录:一般是C:\User...原创 2019-01-12 21:09:38 · 27061 阅读 · 8 评论