
C_OR_CPP
_OpenRed_
避免由上层直接处理繁重任务而造成上层阻塞
展开
-
sizeof
sizeof关键字原创 2022-10-25 21:16:55 · 479 阅读 · 0 评论 -
关于指针_内存_存储_地址的思考
指针与内存原创 2022-06-06 16:53:56 · 80 阅读 · 0 评论 -
do{...}while(0)
linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ... }while(0)这样的代码一看就不是一个循环,do…while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{…}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:1、辅助定义复杂的宏,避免引用的时候出错:2、避免使用goto对程序流进行统一的控制:3、避免空宏引起的warning4、定义一个单独的函数块来实现复杂的操作:[参考资料][1]《do{…}原创 2022-02-13 19:48:43 · 202 阅读 · 1 评论 -
宏 UNUSED_PARAM 的作用UNUSED_PARAM(v)
该宏的定义如下:#ifndef UNUSED_PARAM #define UNUSED_PARAM(v) (void)(v) #endif假如一个有返回值的函数如调用时是没有使用它的返回值,编译器会给出一个警告如果用void强制转换一下,则明确告诉编译器不使用返回值也就是为了消除警告也即是防止未使用的变量在编译时产生warning知乎上有个比较深入的解释,记录如下:摘抄C 语言语法分析时的执行性语句大致分为两类:求值 (evaluation)控制流 (control flow)原创 2022-02-13 18:48:43 · 1246 阅读 · 0 评论 -
GNU C 的一大特色就是__attribute__ 机制
转载文章《C语言__attribute__的使用》(https://blog.youkuaiyun.com/qlexcel/article/details/92656797)遇到过的__attribute__类型:1,《gcc attribute weak & alias应用》(https://blog.youkuaiyun.com/hengshan/article/details/38725971)2,《C 编译器相关 attribute((packed))详解》(https://blog.youkuaiyun.com/sk原创 2022-02-13 18:06:27 · 474 阅读 · 0 评论 -
C语言 内联函数 关键字inline
内联函数: 在C语言中,如果一些函数被频繁调用,不断地有函数入栈,即函数栈,会造成栈空间或栈内存的大量消耗。为了解决这个问题,特别的引入了inline修饰符,表示为内联函数。原创 2022-02-08 21:01:50 · 747 阅读 · 0 评论 -
C 编译器相关 __attribute__((packed))详解
attribute((packed))详解参考链接:(http://blog.chinaunix.net/uid-25768133-id-3485479.html)1, attribute ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:在TC下:struct my{ char原创 2022-01-12 20:47:05 · 1392 阅读 · 0 评论 -
C printf格式化输入输出 %lu
printf格式化输入输出参考链接:《C学习笔记(四)格式化输入输出》(https://www.cnblogs.com/hahazexia/archive/2013/04/10/3011592.html)使用 printf() 与 %c 格式化输出单个字符,#include <stdio.h> int main() { char c; // 声明 char 变量 c = 'A'; // 定义 char 变量 printf("c原创 2022-01-08 20:45:50 · 4600 阅读 · 0 评论 -
C 循环体
while(condition){ statement(s);}do{ statement(s);}while( condition );for ( init; condition; increment ){ statement(s);}原创 2022-01-08 20:45:24 · 346 阅读 · 0 评论 -
ASCII码
ASCII码一览表(http://c.biancheng.net/c/ascii/)ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是一套基于拉丁字母的字符编码,共收录了 128 个字符,用一个字节就可以存储,它等同于国际标准 ISO/IEC 646。ASCII 规范于 1967 年第一次发布,最后一次更新是在 1986 年,它包含了 33 个控制字符(具有某些特殊功能但是无法显示的字符)和 95 个可显示字符。原创 2022-01-08 19:07:50 · 153 阅读 · 0 评论 -
C 指针 数组 字符(串)
首先看下C中的字符串是怎么定义的在 C 语言中,字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。下面的声明和初始化创建了一个 RUNOOB 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 RUNOOB 的字符数多一个。char site[7] = {'R', 'U', 'N', 'O', 'O', 'B', '\0'};依据数组初始化规则,您可以把上面的语句写成以下语句:char site[] = "原创 2022-01-08 17:39:34 · 1976 阅读 · 0 评论 -
C sizeof()
sizeo()原创 2022-01-08 16:27:13 · 443 阅读 · 0 评论 -
嵌入式的寄存器操作
文章参考《嵌入式寄存器操作-----C语言位操作的学习》(https://blog.youkuaiyun.com/zeroubuntu/article/details/19617871)。通过一个按键的实例来看嵌入式中的位操作。转载如下:a |= 1<<x //第x位写1a &=~(1<<x) //第x位写0(a &(1<<x)) == (1<<x) //判断1,等号左边括号不能省略(a& (1原创 2022-01-05 15:34:19 · 1521 阅读 · 0 评论 -
关键字C/C++中extern关键字详解
https://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html原创 2021-12-13 13:55:01 · 527 阅读 · 0 评论 -
C语言-取地址符 引用 解引用 数组 指针 牵扯到的运算 左移 右移 二级制域算法
C++ 中的&:“&引用” 和“&取地址符”的区别和作用参考[https://blog.youkuaiyun.com/qq_33266987/article/details/52047473]计算机基础 - 左移、右移和计算逻辑[https://blog.youkuaiyun.com/u012627861/article/details/89378580]从BCH code[https://zhuanlan.zhihu.com/p/95909150]看到了二进制域的运算参考[https://www原创 2021-12-11 16:12:48 · 307 阅读 · 0 评论 -
嵌入式中的 *(volatile unsigned int *)理解
volatile 无定型的理解参考[https://blog.youkuaiyun.com/czg13548930186/article/details/52454032]以及关键字 const static原创 2021-12-11 16:06:54 · 481 阅读 · 0 评论 -
C 库函数 - snprintf()
C 标准库 - <stdio.h>声明下面是 snprintf() 函数的声明。int snprintf ( char * str, size_t size, const char * format, … );参数str – 目标字符串。size – 拷贝字节数(Bytes)。format – 格式化成字符串。… – 可变参数。返回值(1) 如果格式化后的字符串长度小于等于 size,则会把字符串全部复制到 str 中,并给其后添加一个字符串结束符 \0;(2) 如果格式化原创 2021-12-11 16:02:03 · 655 阅读 · 0 评论 -
python运行
http://c.biancheng.net/view/7032.htmlpython demo.py原创 2021-12-11 15:10:56 · 46727 阅读 · 0 评论 -
memset函数
http://c.biancheng.net/view/231.html#:~:text=memset%20%28%29,%E7%9A%84%E4%BD%9C%E7%94%A8%E6%98%AF%E5%9C%A8%E4%B8%80%E6%AE%B5%E5%86%85%E5%AD%98%E5%9D%97%E4%B8%AD%E5%A1%AB%E5%85%85%E6%9F%90%E4%B8%AA%E7%BB%99%E5%AE%9A%E7%9A%84%E5%80%BC%E3%80%82%20%E5%9B%A0%E4原创 2021-12-11 15:05:51 · 12802 阅读 · 0 评论 -
搭建Windows操作系统下的C语言实践环境
Vscode For C/C++的搭建测试文件:main.c在这里插入代码片在线编译器https://www.runoob.com/try/runcode.php?filename=helloworld&type=c原创 2021-12-11 14:57:57 · 447 阅读 · 0 评论 -
循环体的使用 for while do
循环体原创 2021-12-08 20:38:38 · 68 阅读 · 0 评论 -
C 运算符 逻辑运算符||和&&
C语言 逻辑运算原创 2021-12-04 15:11:14 · 543 阅读 · 0 评论 -
printf 打印 文件名 函数名 行号
printf打印文件名 行号 函数名原创 2021-12-04 14:58:28 · 1992 阅读 · 0 评论 -
__attribute__ ((at())绝对定位
C语言中的关键字__attribute__((at(绝对定位))的应用原创 2021-12-04 13:24:14 · 800 阅读 · 0 评论 -
文本replace处理的几种实现方式
windows系统最简单的使用notepad++。需要打开“显示所有字符”,选择所有字符(包括不可打印字符),然后进行替换操作。命令行方式对文本的处理:Linux 命令,bash脚本语言对文本的处理:PythonC语言对文本的处理...原创 2021-12-02 10:31:58 · 524 阅读 · 0 评论 -
C语言中的关键字__attribute__
C语言中__attribute__ ((at())绝对定位的应用https://www.cnblogs.com/xyelectric/p/9046048.htmlconst uint8_t flash_data[TX_PLOAD_WIDTH]@"CARDNO"={0x11,0x22,0x33,0x44,0x55,0x01}; //然后设定CARDNO对应的flash地址,在.xcl文件中修改attribute( at(绝对地址) )的作用分两个,一个是绝对定位到Flash,另个一是绝对定位到RAM。原创 2021-11-30 10:06:42 · 322 阅读 · 0 评论