1、#define
宏定义,在编译前由预处理器对代码作字符串的替换。宏定义不是语句,后面不加“;”。
2、typedef
typedef是在编译时处理的,在自己的作用域内给一个已经存在的类型一个别名
3、例: typedef int * int_ptr; 与 #define int_ptr int *
作用都是用int_ptr代表 int * ,但是二者不同,正如前面所说 ,#define在预处理 时进行简单的替换,而typedef不是简单替换 ,而是采用如同定义变量的方法那样来声明一种类型。
即相当于:
#define int_ptr int *
int_ptr a, b; //相当于int *a, b; 只是简单的宏替换
typedef int* int_ptr;
int_ptr a, b; //a, b 都为指向int的指针, typedef为int* 引入了一个新的助记符
4、#include “ ”与< >之间的区别
“ ” :是从用户当前目录寻找包含文件,若找不到就会到库函数所在目录中寻找,再找不到就报错。
< >:是直接在库函数所在目录中寻找,找不到就报错。
5、#运算符
可以用来连接字符串。例:
#include<stdio.h> #define PR(n) printf(#n"=%d\n", n) int main() { int a=3, b=4, c=5; PR(a); PR(b); PR(c); return 0; }
运算结果:
a=3 b=4 c=5 |