局部变量和static局部变量的区别

我在单片机程序里写了个C子函数,里面要调用全局变量,耗用单片机的内存,现在我将这个全局变量更改成子函数内的static变量,但是一样耗用单片机内存,这个static变量和全局变量是一样

举个例子,如果x=7,那么表达式x/3=2,值是整型数据;而x/3.0=2.33...,值是浮点型数据。

 

uint8是8位无bai符号整型,uint16是16位无符号整型。

 

局部变量:每次进2113入进入子函5261数中重新赋值
static:静态变量,开始定4102义时赋值,以1653后进入子函数时之前在此函数中计算的值重新赋值该变量 ,static变量和全局变量是不一样,static变量只能在你定义那个子函数中有效。https://zhidao.baidu.com/question/468624385.html

float(也就是单精度浮点),默认有效位数7位。图中的2.000000,有效数字就是7位
单精度,float,32位,有效位数为7位
双精度,double,64位,有效位数15位

不一定。bai是否赋初始值是按照编程的实际需要du来确定的。1 对于全局变量和zhi局部静态变量,dao如果没有初始化值,那么系统默认赋值为0。所以当这类变量的初始值要求为0,或者不关心初始值时,定义时不需要赋初值,这样可以提高效率。2 对于局部变量,如果没有赋初值,那么默认为随机值,即什么值都有可能。对于此类变量,如果其初值不重要,或者不会影响程序结果,比如在定义后,下一步就是对其进行输入等从其它渠道获取值的代码,那么可以不赋初值。

 

c语言 !与~ 好像都是取反???

 

C++的优先bai级
优先级 操作符 结合性
1 :: 左du
2 . -> [] () 左
3 ++ -- ~zhi ! - + & * () sizeof new delete castname_cast<type> 单目操dao作符 右
4 .* ->* 左
5 * / % 左
6 + - 左
7 << >> 左
8 < <= > >= 左
9 == != 左
10 & 左
11 ^ 左
12 |1653 左
13 && 左
14 || 左
15 ?: 右
16 = *= /= %= += -= <<= >>= &= |= ^= 右

!是逻辑取反,只涉及到0和非0(非0并没有统一的数值)
~是按位取反,就是数值写成2进制,然后0改成1,1改成0

288335中的C语言语法_计算机

 

int类型在C语言中占4个字节,即32个二进制位。
当表bai示正数时,最高位为du符号位(符号位为0),最大的正数是 0111 1111 1111 1111 1111 1111 1111 1111 即2^31 -1 = 2147483647

 

 

(a>b)?a:b
表示如果a>b为真,则取问号后边的第一个值,这里是a
如果a>b不为真,则取问号后边的第二个值,这里是b