嵌入式c语言编程总结.doc
一,简单的C程序介绍,
每一个C源程序都必须有,且只能有一个main()函数;
凡是在程序调用一个库函数时,都必须包含该函数原型所在的库函数,
C语言特点:语言简洁紧凑,使用方使灵活,支持直接对硬件操作,生成目标代码质量高;, 程序执行效率高,和而向対象语言紧密相连;
二,程序的灵魂一一算法
一个程序应包括:
对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)
对操作的描述.即操作步骤,也就是算法(algo川hm)。
Nikiklaus Wirth提出的公式:数据结构+算法=程序。
教材认为:算法+数据结构+程序设计方法+语言工具和环境二程序。
算法:为解决一个问题而采取的方法和步骤叫做算法。
结构化程序设计方法
自顶向下
逐步细化
模块化设计
结构化编码
三,数据类型,运算符与表达式
在c语言中数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型。
符号常量:用宏代表一个常量。在C语言中,可以用一个标识符来代表一个常量,称之为符 号常量。
使用之前应该先定义,如:#define PI 3.14
也是一条预处理命令,成为宏定义命令、习惯上符号常量的标识符川人写字母,变量标识 符用小写字母,以示区别。符号变量与变量不同,它的值在其作用域内不能改变,也不能再 被赋值。
优点:①含义清楚②能做到一改全改。
整型数据在内存中的存放形式:
数值是以补码的形式表示的:
正数的补码与原码相同;
负数的补码:将该数的绝对值的二进制形式按位取反再加一。
从本例可以看出,由于a是单精度浮点型,有效位数只有7位。而整数己占5位,故小数两 位后均为无效数字。b为双精度有效位数为16位;
3.5.2转义字符:
特殊的字符常量
\n回车换行
ASCII
10
\t横向跳到下一个制表位
ASCII
\b退格
ASCII
8
\r?回车
ASCII
13
\f走纸换页
ASCII
12
\\反斜线符
ASCII
92
\’单引号符
ASCII
39
\”双引号符
ASCII
34
\a鸣铃
ASCII
7
\dddl?3位八进制所代表的字符
\xhhl?2位16进制所代表的字符
在输出时允许把字符常量按整形输出,也允许整型量按字符量输出。整型量为而字节量, 字符量为单字节量,当整型量按字符型最处理时只有低八位字节参与处理。
大小写字母的ASCII值相差32; A为65, a为97
在c语言中没有字符串变量但是可以用字符数组来存放一个字符串常量。
字符常量占一个字节的内存空间。字符串常量占得内存字节数等于字符串字节数+1?增加的 一-个字节存放字符\0 (ASCII为0)这是字符串结束的标志。
无论是强制类型转换还是自动转换都只是为了血对变量的长度做的临时性转换而不改变数 据说明时对该变量定义的类型。
最典型的是右结合型运算符为赋值运算符。如x=y=z;应注意先执行y=z再执行x=y; x*=y+7;等价于 x=x* (y+7 );
第四章,顺序程序设计
在变量说明中,不允许连续给多个变量赋初值
int a=b=x=y=5; XXX
格式字符串的一般形式是:【标志】【输出最小宽度】.【精度】【长度】类型
【类型】:表示输出数据的类型,
%c输出单个字符%s输出字符窜
%d以十进制形式输出%o以八进制形式输出无符号数(不输出前缀0)
%u以十进制无符号数形式输出;%x或/X以十六进制形式输出(不输出前缀
Ox)
%f以小数形式输出单精度浮点型;%lf以小数形式输出双精度浮点型
%e或%〔以指数形式输出单双精度浮点型
%纟或%6以%f或%。中输出宽度较短的输出单双精度实数
【标志]:-+#空格四种
■:结果左对齐,右边填空格
+:输出符号,止号或负号
#:对cs du类无影响,对0,Ox类输出时加前缀:对e, g, f类结果有小数点时才给出 小数点
空格:输出值为正时冠以空格,为负时冠以负号
格式字符串:用十进制磐数指定输入的宽度(即字符数)
scanf (“%5d”, &a); //输把12345赋给a,其余部分被截去
scanf (“%3d%3d”,&a, &b); 〃输入把 123 赋给 a, 456 赋给 b;
scanf函数中没有精度控制;
sizeof (int);
putcharC\102,);表示字母B; 102是8进制的\134表示反斜线\XOA表示换行
5.3.3条件运算符与条件表达式
条件运算符通常川在赋值语句屮;例如条件语旬:
if (a>b)
max=a;
else
max=b;
可川条件表达式写为:max=a>b?a:b;
条件运算符的结合方向是从右向左;例如:a>b? a: c>d?c:d;
5.4 switch(a)
{
case