
C语言
amRobinson
这个作者很懒,什么都没留下…
展开
-
【C/C++】C调用C++库和C++调用C库的方法
C调用C++库和C++调用C库的方法_码农小明的博客-优快云博客_c调用c++库转载 2022-07-15 09:39:19 · 730 阅读 · 0 评论 -
【C语言】关键字volatile和register
关键字volatile和register_lbt111的博客-优快云博客_register和volatile用关键字volatile声明变量,是用来告诉编译器每次对此变量的引用都需要从内存地址中读取,即取消编译器对此变量的优化编译。当某次引用没用volatile声明的变量时,其被编译器从内存地址中读取到AX(某通用寄存器)中,那么在其后的引用中,如果AX寄存器没用被改变,那么编译器会优化成直接读取AX寄存器。用一个例子来说明:volatile int i = 4;int j = i;int k = i转载 2022-06-17 11:05:54 · 308 阅读 · 0 评论 -
ucos平台上 printf 输出浮点数据float出错
先说解决办法:在任务堆栈定义前增加__align(8),使其8字节对齐。__align(8) static OS_STK AppTaskStartStk[APP_TASK_START_STK_SIZE];再说遇到的实际问题:使用C库函数重映射到串口输出浮点数据打印异常,整型数据则没问题。函数如下:实际输出结果:原因分析:将上述打印函数放在ucos系统任务前调用,则没问题。初步判定问题出在ucos系统上,后经多方查证,确认需要对ucos系统任务的堆栈函数进行8字节对齐处理.原创 2021-12-31 16:22:06 · 1005 阅读 · 0 评论 -
2021-11-08
https://blog.youkuaiyun.com/SH_ke/article/details/118496704?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-4.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7转载 2021-12-21 11:07:47 · 111 阅读 · 0 评论 -
[STM32]关于环形队列的实现
在程序中使用环形队列判断接收数据格式,避免在中断中处理造成程序响应速度慢的问题。直接贴代码:LoopRxCommu.h#ifndef __LOOPRXCOMMU_H#define __LOOPRXCOMMU_H#include "hal_types.h" typedef struct{ volatile u16 out;//环形队列头 volatile u16 in;//环形队列尾(输入数据位置) volatile u8 *rbuf;//环形队列指针 volatile u16原创 2021-10-08 11:33:45 · 867 阅读 · 0 评论 -
【C语言】printf 打印指定长度字符串
1.原样输出字符串: printf("%s", str);2. 输出指定长度的字符串, 超长时不截断, 不足时右对齐: printf("%Ns", str); --N 为指定长度的10进制数值3. 输出指定长度的字符串, 超长时不截断, 不足时左对齐: printf("%-Ns", str); --N 为指定长度的10进...转载 2019-09-07 21:50:52 · 11948 阅读 · 0 评论 -
【C语言】printf函数打印文件名和行数实现
比如file="/home/book/source/file1.c",则filestr指向”/file1.c",filestr+1指向”file1.c"。重点在strrchr函数,从右往左开始寻找第一个出现的'/'路径符号,并将'/'连同右边的字符串赋值给filestr。绝对路径:在某些编译器编译程序后(比如cmake工具),__FILE__打印出来的路径是源码文件的绝对路径。printf("文件名:%s 行数:%d\n", __FILE__ , __LINE__);原创 2019-07-20 17:16:12 · 6298 阅读 · 0 评论