- 博客(5)
- 收藏
- 关注
原创 宏的“字符串拼接”与“宏展开机制”
a##bCONCAT步骤说明1️⃣##操作符把两个 token 拼接成一个新名字2️⃣ 宏参数替换把name替换为实际类型名(如IntList3️⃣ 多层宏包装用中间宏(如CONCAT)避免展开问题4️⃣ 预处理器展开在编译前,把宏替换成真实函数/结构体名5️⃣ 生成唯一标识符每种类型都有独立名字,避免冲突##是 C 预处理器的“字符串拼接工具”,配合宏参数,可以在编译前自动生成独一无二的结构体名和函数名,从而模拟出“泛型”和“重载”的效果。这就是 C 语言“元编程”的魅力所在!
2025-08-06 19:39:17
667
原创 scanf(“ %c“, &ch);处理换行符
写法行为读取下一个字符,包括空白字符(容易误读\n跳过所有前导空白字符,读取第一个非空白字符(推荐用于交互式输入)💡 这个技巧不仅适用于%c,也适用于其他格式。例如本身就会自动跳过前导空白,但%c是例外,它不会自动跳过。所以," %c"中的空格是一个防呆设计,确保你读到的是用户真正输入的字符,而不是被换行符干扰。
2025-08-02 15:49:54
1133
原创 基于STM32F103ZET6的FreeRTOS环境搭建
前面写过一篇比较完整的文档,这里简述一下,因为H743不支持Keil的软件仿真,所以改用STM32F103ZET6继续学习。
2025-08-01 11:45:00
623
原创 正点原子的阿波罗STM32H743开发板FreeRTOS环境搭建
如果使用STM32CubeIDE的话记得把USE_NEWLIB_REENTRANT设置成Enabled,我是用的Keil就不需要打开了。这里就创建两个任务,Led0 500ms闪烁一次,Led1 1000ms闪烁一次。编译运行,LED0每500ms状态变化,LED1每1000ms状态变化。LED引脚配置,在①处可以进行搜索引脚,设置模式,②③出进行具体的配置。把这个修改一下,我修改的是TIM7,貌似其他的也行,具体原因忘记了。配置完成之后生成代码,然后在Keil里面编写代码。导入FreeRTOS。
2025-07-30 11:00:00
1958
原创 《C语言测试卷》
A. a:=b+1B. a=b=c+2C.18.5%3参考答案:B参考答案:C解析:本题考查的知识点是:标准输入函数scanf()。scanf()函数要求,除了第1个参数为格式化字符串以外,其余参数均为相应变量的地址值。本题中,只有p是地址值,故应该选择C。i=0;do{其输出结果是( )[2分]A.0,0B.0,1C.1,1D.程序进入无限循环参考答案:B解析:对于do…while循环,程序先执行一次循环体,再判断循环是否继续。
2025-07-28 19:03:52
1876
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅