
语言----C
C编程语言
虾稿
偶尔搞搞电子,偶尔搞搞数据,偶尔被搞搞。
展开
-
(转载)嵌入式C语言源代码优化方案(非编译器优化)
转载来自:https://mp.weixin.qq.com/s/mM2rZ45R95AlCo5u-B2hAA文章目录一、选择合适的算法和数据结构二、使用尽量小的数据类型三、减少运算的强度(1)、查表(游戏程序员必修课)(2)求余运算(3)平方运算(4)用移位实现乘除法运算(5)避免不必要的整数除法(6)使用增量和减量操作符(7)使用复合赋值表达式(8)提取公共的子表达式四、结构体成员的布局(1)按数据类型的长度排序(2)把结构体填充成最长类型长度的整倍数(3)按数据类型的长度排序本地变量(4)把频繁使用的转载 2020-09-19 11:31:46 · 140 阅读 · 0 评论 -
static __INLINE 内联函数
_inline函数也称为内联函数或内嵌函数,_inline定义的类的内联函数,函数代码被放入符号调用表,使用时直接展开,不需要调用,即在编译期间将所调用的函数的代码直接嵌入到主调函数中,是一种以空间换时间的函数。 内联函数有些类似于宏。内联函数的代码会被直接嵌入在它被调用的地方,调用几次就嵌入几次,没有使用call指令。这样省去了函数调用时的一些额外开销,比如保存和...原创 2020-02-09 19:46:19 · 7751 阅读 · 0 评论 -
assert_param 函数,断言
在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用。在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。 这是一种常见的软件技术,可以在调试阶段帮助程序员快速地排除那些明显的错误。它确实在程序的运行上牺牲了效率(但只是在调试阶段),但在项目的开发上却帮助你提高了效率。 当你的项目开发成功,...原创 2020-02-04 20:43:11 · 655 阅读 · 0 评论 -
递归函数调用
递归调用:求n! . 如5!=5*4*3*2*1 =120Int fac(int n) // 定义递归函数{ Int f; If(n<0) { } //n不能小于0 else if(n==0||n==1) //n=0或,1时n!=1 {...原创 2020-02-01 18:43:46 · 251 阅读 · 0 评论 -
指针学习
程序中定义的变量,在编译时,系统会给这个变量分配内存单元,根据数据类型,分配一定的长度空间。如Visual C++为整型变量分配4个字节,float分配4个字节,对char分配1个字节,内存区的每个字节有一个编号,这就是“地址”。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元,将地址形象的称为”指针”,即一个变量的地址称为该变量的”指针”。 指针变量,也是...原创 2020-01-11 11:21:04 · 388 阅读 · 0 评论 -
(转) sizeof 的用法
(转载来自:https://blog.csdn.net/u013812502/article/details/81198452)sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符。常见的使用方式:int a=10;int arr=[1,2,3];char str[]="hello";int len_a = sizeof(a);int len_arr = s...转载 2020-01-02 11:24:02 · 159 阅读 · 0 评论 -
数组使用说明
1,一维数组 类型符 数组名[常量表达式]例:int a[5]={1,2,3,4,5}; 引用: t=a[0],即t=1 。 也可以 int a[ ]={1,2,3,4,5}2,二维数组 类型说明符 数组名[常量表达式] [常量表达式]例:int a[3][4]={ {1,2,3,4} , {1,2,3,4}, {1,2,3,4,} }; ...原创 2019-12-31 22:30:06 · 742 阅读 · 0 评论 -
bit,byte,word ,数据类型存储空间
位 bit字节 byte字 word : 不同计算机系统中占据一个单独的地址(内存单元的编号)并作为一个单元(由一个或多个字节组合而成)处理的一组二进制数。8位的CPU字长为8位,一个字等于一个字节,一次只能处理一个字节,而32位的CPU字长为32位,一个字等于4个字节,一次就能处理4个字节,同理字长为64位的CPU一次可以处理8个字节,一个字等于8个字节。1字节=8位 ...原创 2019-12-30 15:02:06 · 2386 阅读 · 0 评论 -
#define 、const 、typedef 诠释
1,符号亮量、预处理指令#define PI 3.1416 //注意行末没有分号在对程序进行编译前,预处理器先对PI进行处理,把所有的PI全部置换为3.1416。 #define是C语言中定义的语法,是预处理指令,在预处理时进行简单而机械的字符串替换,不作正确性检查,只有在编译已被展开的源程序时才会发现可能的错误并报错。 注意:要区分...原创 2019-12-29 16:31:21 · 179 阅读 · 0 评论 -
C语言运算符优先级
C语言运算符优先级Precedence Operator Description Associativity 1 ++-- Suffix/postfix increment and decrement Left-to-right () Function call [] Array subscripting . Str...原创 2019-12-29 15:23:18 · 184 阅读 · 0 评论 -
ASCII对照表(全) 和 转义字符
1,常用标准(0~127),ASCII中的0~31为控制字符;32~126为打印字符;127为Delete(删除)命令。ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 0 NUL 32 (space) 64 @ 96 、 1 SOH...原创 2019-12-29 15:18:33 · 14974 阅读 · 0 评论 -
C语言关键字
z=x>y? x:y // 把x和y中的大者赋给z1.关键字变更历史1999年12月16日,ISO推出了C99标准,该标准新增了5个C语言关键字:inline restrict _Bool _Complex _Imaginary(注意bool 从来不是C语言的关键字)2011年12月8日,ISO发布C语言的新标准C11,该标准新增了7个C语言关键字:...原创 2019-05-14 10:12:40 · 645 阅读 · 0 评论 -
(转载)#define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif、defined 的用法
转载来自:https://www.cnblogs.com/fazero/p/5016514.html)(转载来自:https://blog.csdn.net/qq_33658067/article/details/79443014)#ifndef 作用:防止头文件的重复包含和编译定义 #ifndef x #define x ... #endif 这是宏定义...转载 2018-11-12 21:43:10 · 1552 阅读 · 0 评论 -
C语言中常用的几个头文件及库函数 (stdio.h ,string.h ,math.h ,stdlib.h)
(参考:https://www.jb51.net/article/124594.htm) #include<stdio.h> 或 #include"stdio.h" 用#include<stdio.h>形式时,编译系统从存放C编译系统的子目录中去找所包含的文件stdio.h,这称为标准方式。 用#include"stdio.h"形式时,编...原创 2018-11-07 12:14:59 · 24329 阅读 · 1 评论