总结
疑问和FAQ:
(1)关于宏定义的代码段也叫宏函数 应当采用
#define foo do{
xxxxx;
xxxxxx;
xxxxxxx;
}while(0);
这个方式定义的宏可以很好的被保护起来 不会发生代码段预处理时产生的歧义
(2)
register关键字定义的变量存储在cpu的高速缓存cache区 并非普通的寄存器 可以使用的cache区大小由cpu决定
1.一维数组,二维数组如何定义,初始化?如何在程序中赋值?
如:int a[]={1,2,3,};
int b[2][3]={4,5,6,7,};
2.字符数组如何定义,初始化,如何程序中赋值?
如:char a[5]={'H','E','L','L','O',};
3.字符串常见函数的使用,不用函数如何实现字符串的复制,字符串长度的实现?
如果不用函数,可把字符串里的字符一个一个分别赋值给另一个数组来实现复制。
4.函数的构造有哪些?入参,返回值如何在函数中体现?形参,实参是如何传递数据?
函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值。
5.值传递,地址传递是怎么回事?如何实现在子函数中数值交换后在主函数中能实现?
用参数,指针来进行值传递,地址传递。用extern实现在子函数中数值交换后在主函数中实现。
6. Auto,register,extern,static关键字的使用,详细说明
extern 外部变量声明,是指这是一个已在别的地方定义过的对象,这里只是对变量的一次重复引用,不会产生新的变量。static 静态数据,数据存放在全局数据区,但作用域只是本 文件/函数 中,所以你可以在两个不同的文件/函数内部申明同名的static变量,但是 它们是两个不同的全局变量。 如果是定义在函数内,那么该对象具有无链接,函数外不能对其访问。如果是定义在函数外,那么该对象具 有内部链接,其它程序文件不能对其访问
auto 普通局部栈变量,是自动存储,这种对象会自动创建和销毁 ,建议这个变量要放在堆栈上面,调用函数时分配内存,函数结束时释放内 存。一般隐藏auto默认为自动存储类别。我们程序都变量大多是自动变量。
register 存储在高速缓存cache区的变量 访问和读写速度最快
7.文件的包含有几种?分别表示什么意思?
如:头文件#include <stdio.h> 在当前目录和TC指定的目录中找该文件
8.宏定义如何实现?撤销定义如何实现?
如:#define PI 3.14