本帖最后由 Cube 于 2011-3-29 16:41 编辑
【菜农助学活动】新唐M0开发工具介绍
https://bbs.21ic.com/icview-226202-1-1.html
【菜农助学活动】资料汇总与更新
https://bbs.21ic.com/icview-225655-1-1.html
【菜农助学活动】C语言查缺补漏
今天所讲的内容有可能只适应部分基础相对薄弱,或者是从51直接进入新唐M0
学习的朋友。因为无法将C语言所有内容一一讲明,希望各位能根据自己的基础
找一本适合的书再做学习。
A:简单的预处理命令
1.宏定义
#define 标识符 宏体
#define 宏名(形参表) 宏体
利用宏定义的预处理
可将程序中标识符或带参宏 用 #define 后的宏体去替换
注意:宏体切忌“;”否则宏展开时将作为宏体之字符
另外,宏也不能被赋值
例:
#define PI 3.14
#define CIRCLE(R,L,S) L=2*PI*R;S=PI*R*R
2.宏与函数的区别
1.调用函数时有堆栈问题,应有现场保护与恢复系统运行时间也较长
但是不会增加程序的长度
2.宏展开只是将取代标示用宏名取代,在编译时进行此工作,故不占用
运行时间,相比函数调用节省了调用的时间,但引用一次将加大一次
代码长度。
3.带形参宏中,形参没有类型,故可以任何类型,而函数实参必须与形参
类型一致
3.万恶的#include
1.头文件的结构
(1)头文件注释,文件说明,功能描述,版权声明等
(2)内部包含指令以 #ifndef XXX或#define 开始
(3)通过#include指令包含其他头文件
(4)包括外部变量与全局函数声明
(5)包括常量与宏定义
(6)类型的前置声明与定义
(7)全局函数的原型与内联函数的定义
(8)内部包含指令以#endif 结束
(9)版本号
2.头文件嵌套的问题
容易编译时进入死循环
故应:1.使用宏去保证文件只被包含一次
2.头文件的引用尽可能放进源文件中
3.#include<XXX>与"XXX"的区别
当前性
<>中一般为编译器目录下的文件夹
一般这类文件不需要修改
""中一般为用户指定目录下的文件
这类文件改动次数比较大
4.一般使用的到的语句结构
#ifdef
XXX
#else
XXX
#endif
#ifndef
#define
#endif
#if
#else
#endif
#ifdef TRUE
#undef TRUE
#endif
---------------------------------------------------------------------------
B:结构体的声明与使用
C:指针与地址
D:函数与关键字 |