您的位置:首页 > 理论基础 > 数据结构算法

嵌入式c语言 之数据结构:为什么嵌入式要选择c语言? *c的可移植性好:能在不同平台的结构访问硬件 *c具有简洁紧、使用灵活的语法机制,并能直接访问硬件。 *c具有高效的运行效率

2016-07-19 21:18 645 查看
嵌入式c语言;数据结构

为什么嵌入式要选择c语言?

*c的可移植性好:能在不同平台的结构访问硬件。

*c具有简洁紧、使用灵活的语法机制,并能直接访问硬件。

*c具有高效的运行效率

1:直接访问硬件(对硬件初始化)、

内核(kernel)内编程:c语言嵌套汇编 2:汇编是低级语言

对硬件做复杂操作用c,c为高级语言

面向结构的语言与面向对象的区别?

面向结构:是为了解决具体事物

面向对象:解决宏观问题 只关心结果

优点:代码的复用性、维护性、扩展性

C&RC

C语言标准: ANSIC / C89

C99

数据类型:

什么叫数据类型:数据集合的划分,不同数据类型对CPU的意义不一样。

强制类型转化:

Char < int < float < double
(隐式类型转化)

字节长度:位(bit)、字节、半字、字

1字节 = 8位

1半字 = 2个字节= 16位

字 = 4个字节= 32位

Char : 1字节

Int: 4字节

Short:2字节

Long: 4字节

Long long : 4字节

Float: 4字节

Double: 8字节

*对于任何类型的指针,都是4字节(在32为操作系统上)。

取值范围:unsigned char : 0~255

Char: char:-128~127

用typedef来对数据类型重定义,提高代码的移植性。

如:typedef unsigned char Char;

当有符号位和无符号位比较时,默认有符号数自动转化成无符号数。

Strlen 与 sizeof的区别

1:strlen是函数,而sizeof是运算符。

2:strlen遇到’\0’结束(不计算’\0’),而sizeof要计算’\0’。

常量与变量:

常量: 常量都是有符号位的、

变量:变量有三个特点

1:变量的数据类型

2:变量的作用域。

3:变量的内存区域。

一般我们使用的内存都是系统映射的虚拟内存。

虚拟内存地址空间的划分:

内核

栈空间 保存:局部变量、函数形参、自动变量。

堆空间 malloc、ralloc、calloc、(分配空间),用free()释放

bss:保存未初始化的全局变量(系统自动分配为0)

数据段

rodata:常量

.data(静态数据区):初始化的全局变量、static修饰的变量

代码段

特点:

栈空间:先进后出、 管理权限:系统

堆空间:先进先出、 管理权限:用户。

局部变量与全局变量:

局部变量:也叫内部变量,在函数内定义,且其作用域也仅限于函数内。

全局变量:也叫外部变量;在函数外定义的,其作用域是从其定义处到程序结束。

声明与定义:

定义:创建一个变量、分配内存空间,且每个变量只能定义一次。

声明:告知编译器,这个名字(变量)已经匹配在一块内存,但未分配内存。声明可多次。

左右法则: 先看变量右边,再看左边(右一次,左一次)

-----遇结束标志从右/左换到左/右

结束标志:分号”;”。 逗号”,”。括号”()”。

如:

1): int a ; 整型变量

2): int *a ; 整型指针变量

3): int **a; 整型指针的指针变量

4): int a[10]; 整型数组

5): int *a[10]; 整型指针数组变量

6); int (*a)[10]; 整型数组指针变量

7): int (*a)(int); 整型函数指针变量

8); int (*a[10])(int); 整型函数指针数组

9): int *(*(*fp1)(int))[10]

变量fp1:函数指针变量,该函数指针指向一个形参为int,返回值为数组指针,该数组

指针指向一个整型指针。

10): int *(*(*arr[5]) () ) ();

变量arr:函数指针数组变量,该函数指针数组的元素指向一个形参为空,返回值为

函数函数指针;该函数指针指向一个形参为空,返回值为整型指针。

11): float ( *( *b() ) [] ) ();

变量b:函数,形参为空,返回值为数组指针,该指针指向一个函数指针数组,该数组

指向形参为空,返回值为float函数。

12): void *( *c) (char , int (*) () );

变量c:函数指针变量, 指向函数形参为char,函数指针,返回值
void *。

13): float ( * ( *e [10 ] ) ( int * ) ) [ 5 ];

变量e:函数指针数组,该函数形参为int * ,返回值为指针数组,该数组元素都是float.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 数据结构