随笔分类 - C/C++
摘要:网上看到一个文章,里面讲述了四种高效c语言执行的方法, 1、使用空间代替时间 2、使用数学优化,而不是死计算,笨计算 3、使用位运算 4、使用嵌入汇编 前三点比较容易掌握,第四点基本上需要有比较深厚的汇编基础。 这里讲讲位运算, 1、无符号数据中, 左移1位,等价于除以2,右移1位,等价于乘以2,,
阅读全文
摘要:他的作用于在调试过程中捕捉程序错误 void assert (int expression); 断言函数,用于在调试过程中捕捉程序的错误。“断言”在语文中的意思是“断定”、“十分肯定地说”,在编程中是指对某种假设条件进行检测,如果条件成立就不进行任何操作,如果条件不成立就捕捉到这种错误,并打印出错误
阅读全文
摘要:代码风格是一个可重不重要的东西,虽然,不影响代码正确性,但是其实,非常的重要,通常在项目中,不能随便写代码,需要有一点的规范,命名法便是其中一个比较重要的一点。 通常我自己有一套命名法,结合匈牙利法(主要是数据类型这块,因为嵌入式,数据类型比较重要,毕竟资源比较少的),其次是其他两种方法结合,下面说
阅读全文
摘要:语言标准及文档● ISO C99http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf● ANSI C Rationalehttp://www.quut.com/c/rat/title.htmlFAQ (常见问题)● comp.lang.c
阅读全文
摘要:http://c.biancheng.net/view/159.html %d 按十进制整型数据的实际长度输出。 %ld 输出长整型数据。 %md m 为指定的输出字段的宽度。如果数据的位数小于 m,则左端补以空格,若大于 m,则按实际位数输出。 %u 输出无符号整型(unsigned)。输出无符号
阅读全文
摘要:通常,我们在c语言中使用比较频繁的是printf和scanf,其实在嵌入式领域中,字符串处理是比较频繁的,因此c语言的库函数中,有两个比较好的函数:sprintf和sscanf,他俩的功能如下: sprintf与printf函数的区别:二者功能相似,但是sprintf函数打印到字符串中,而print
阅读全文
摘要:昨天学习了c语言的库函数、静态链接和动态链接相关知识文章部分参考了以下两个公众号的文章。https://mp.weixin.qq.com/s/bxWyji5xFBoOnRz_MW3t0ghttps://mp.weixin.qq.com/s/OfeKT1KQ5ZzWaqYN6A82gA1、库函数,他的
阅读全文
摘要:网络上有一篇位运算的文章,感觉有点新意,因此特意整理一下,转载发表。最基本的运算如下:这个我想学过计算机基础都知道,这里好像是使用C语言的。& - bitwise and| - bitwise or^ - bitwise xor~ - bitwise not<< - bitwise shift le
阅读全文
摘要:命名规则 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] [-gcc] arch – 体系架构,如ARM,MIPS vendor – 工具链提供商 os – 目标操作系统 eabi – 嵌入式应用二进制接口(Embedded Application B
阅读全文
摘要:标题其实为了引起注意和刚刚的文章一致,其实是想说明如何写好优质的c语言 1、要注意优先级,不清楚的地方就加括号。 2、在if语句,while语句,不要过多的混合多个语句,简单明了,不要炫技巧。 3、浮点数判断要注意 4、switch中一定要加default语句,哪怕里面是空的。 5、注意for循环,
阅读全文
摘要:且看下面两个死循环,我曾经就踩过这个坑,是第二个坑,因此特意记录一下。char在keil和iar中都是无符号的,因此要特别注意。 unsigned char i; for(i=0;i<256;i++) { //something } 当我们用上述代码想实现一个小循环时,结果却事与愿违,这
阅读全文
摘要:之前提到过一个编译选项:Optimize for time,这个会影响float变量的存储大小,其实实测是不会影响,依然是4字节 且看测试的截图:stm32F103+keil5.20+ac5 测试代码: main函数中结构体赋值: 下图是设定位4字节对齐后,代码的存储实际情况,下面划线是全局结构体变
阅读全文
摘要:作者: 阮一峰 日期: 2010年6月 6日 日期: 2010年6月 6日 1. 1. 前几天,我在读一本C语言教材,有一道例题: #include <stdio.h> void main(void){ int num=9; /* num是整型变量,设为9 */ float* pFloat=&num
阅读全文
摘要:今天想尝试在win7的32位系统上的vscode上面安装tcc compiler,但是实际证明,这个插件不支持32为系统,64位系统下,这个插件可以使用f10快捷键来快速运行c程序,而不用编译,类似于解释器,很是方便。 tcc编译器由法国大神开发的,好像已经不更新的,国内网站很难登录。但是可以下载,
阅读全文
摘要:最近在使用ac6.9的编译器,编译速度是真的很快,使用stm32的hal库编译速度也比ac5的编译器快很多。本文试验stm32中字节对齐的代码测试,主要是结构体,因为结构体中实际项目中用到最多,同时在仿真环境中打印出来。 ac5的测试结果: 测试结果如下: ac6的测试结果:
阅读全文
摘要:参考:http://armbbs.cn/forum.php?mod=viewthread&tid=95190&extra=page%3D1 对于内联函数,不能像普通函数那样,直接在.h文件里面声明下,源文件里面定义下,然后其他C文件就可以调用。而加上static的前缀后,就解决了这个问题。以CMSI
阅读全文
摘要:上面的两幅图是stm32系列的,但是基本原理可以通用的。
阅读全文
摘要:#include <float.h>#include <limits.h>int n1 = INT_MIN;int n2 = INT_MAX;float f1 = FLT_MIN;float f2 = FLT_MAX;double d1 = DBL_MIN;double d2 = DBL_MAX;l
阅读全文