淡化语法,更多的是了解c的思路。
.c//c语言 .cpp//c++
gcc只能翻译c每次翻译前都会调用其它进行辅助
c语言错误----链接错误?
_FUNCTION_ _FILE_ _LINE_ 全局函数,不需要定义就可以打印,调试用来差错在那一行
0x1== 16进制中的1
0x0== 0
调试预处理:
//defind ABC 通过取消或者使用注释就可以进行代码的调试
#ifdef ABC
***********
#endif
***********
#号:
#字符串化
##连接
sizeof:显示内存大小,不需要预先处理就可以使用,在没有内置c环境的编程也可以实现(printf不行)
10bit-1BASD
ASC II
char 8bit max-256位
1000 0001==== -1 红色表示正负,
补码: 11111 1110+1=====11111 1111 符号位不变,其余取反+1
-1即为1111 1111,全高点平
关键字八进制相对于二进制的3bit
十六进制相对于4bit
unsingle:无符号数据,替代数字。减少错误
char 2B
int 4B
long (可扩) short (最大16bit)
float 4B double 8B
自定义关键字struct----元素之间的和
union:技巧性代码,共用起始地址的一段内存
enum 类似于definf,但是又一个集合空间的意思在里面。
相对于一个集,将同一个功能的不同组成部分集合打包。
typedef:
数据类型的别名?
typedef int a:a是一种int类型的外号,即a=int(方便理解,一般不这么使用)
xxx_t : xxx类型 eg: len_t a=170 a的长度为170
逻辑结构(分支,循环) if、else(条件是重点) switch(括号内整形常数),case(配合breck),default(多分枝) do,while(条件),for(次数)(循环) 类型修饰符:对存储位置的限定(寄存器或可读) auto(可读可写) registr(限制存储在寄存器内,速度更快,定义快速访问变量)&取地址对register不起作用,无法取址
static(静态)待解决?1.
2.修饰函数及其内部、外部的变量
extern(外部申明)待解决? const(只读的变量,可以通过其它方法(指针)进行变换)(与内存泄漏有关)
volatile(不优化编译)修饰变量的值的修改不止通过软件,也可以通过其它(硬件)
运算符(相同的运算符在不同的环境下被赋予了不同的意义) 算术操作符+ - 基础 一个周期可处理
* / 一些cpu不支持,可能要通过多个周期或者软件模拟方法进行,裸机无法计算
% 求余
n%m 取得的值在0到m-1之间,
1.可用于范围内取值
eg':给一个任意数,求得到1-100以内的任意数
(m%100)+1
2.得到m进制的一个个位数
逻辑运算真、假
II、&&顺序不能换,先计算前一个
!取反
位运算(开发!)<< >> (相对于乘2,可以代替乘法)
左移:乘法 * 2^n 。二进制下的移位 (补零)
m<<2; m*2
m< 右移:除以2^n 符号变量有关,右移补符号变量(0/1) 负数在while里面会一直死循环,一直补1 &、I &:屏蔽(与0就会得0,就是得到低电平)、取出(与1得原数) int a=0x1234 a & 0xff00 屏蔽低八位,取出高八位 I : 保留/设置为高电平 A I 0 == A 保留 A I 1 ==1 置为高电平 ~、^ ^异或 ~取反 = 带有自更新 I= &= 与/或之后自带更新 ->:地址访问 . :变量访问



