------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、预处理
1.所有的预处理指令都是以#开头
2.预处理指令分3种
1> 宏定义
2> 条件编译
3> 文件包含
3.预处理指令在代码翻译成0和1之前执行
4.预处理的位置是随便写的
5.预处理指令的作用域:从编写指令的那一行开始,一直到文件结尾,可以用#undef取消宏定义的作用
6.宏名一般用大写或者以k开头,变量名一般用小写
二、1.带参数的宏定义效率比函数高,例如:
#define sum(v1, v2) ((v1)+(v2)) #define pingfang(a) ((a)*(a))
三、只要写了#if,在最后面必须加上#endif
例1:
#ifndef A #ifdef A #if !defined(A) printf("哈哈\n"); #endif
例2:
#if (A == 10) printf("a是10\n"); #elif (A == 5) printf("a是5\n"); #else printf("a其他值\n"); #endif
四、typedef使用
1.作用:给已经存在的类型起一个新的名称
2.使用场合:
1> 基本数据类型 typedef int MyInt;
2> 指针 typedef char * String;
3> 结构体
typedef struct { int age; } MyStu;
4> 枚举
typedef enum { Man, Woman } MySex;
5> 指向函数的指针 typedef int (*MyPoint)(int, int);
五、#define 与 typedef 的区别:
#define String2 char * typedef char * String; //s1、s2是char *指针 String s1, s2; /* String s1; String s2; */ s1 = "jack"; s2 = "rose"; // s3才是char *指针,s4只是char String2 s3, s4; /* char *s3, s4; char *s3; char s4; */
六、include
1.<>表示系统自带的文件,""表示自定义的文件
2.不允许循环包含,比如a.h包含b.h,b.h又包含a.h
七、static 和 extern 对函数的作用
外部函数:定义的函数能被本文件和其他文件访问
1> 默认情况下所有函数都是外部函数
2> 不允许有同名的外部函数
内部函数:定义的函数只能被本文件访问,其他文件不能访问
1> 允许不同文件中有同名的内部函数
static对函数的作用:
1> 定义一个内部函数
2> 声明一个内部函数
extern对函数的作用:
1> 完整地定义一个外部函数
2> 完整地声明一个外部函数
(extern可以省略,默认情况下声明和定义的函数都是外部函数)
八、static 和 extern 对变量的作用
全局变量分2种:
外部变量:定义的变量能被本文件和其他文件访问
1> 默认情况下,所有的全局变量都是外部变量
2> 不同文件中的同名外部变量,都代表着同一个变量
内部变量:定义的变量只能被本文件访问,不能被其他文件访问
1> 不同文件中的同名内部变量,互不影响
static对变量的作用:
定义一个内部变量
extern对变量的作用:
声明一个外部变量
static对函数的作用:
定义和声明一个内部函数
extern对函数的作用:
定义和声明一个外部函数(可以省略)
static修饰局部变量的使用场合:
1.如果某个函数的调用频率特别高
2.这个函数内部的某个变量值是固定不变的
static修饰局部变量:
1> 延长局部变量的生命周期:程序结束的时候,局部变量才会被销毁
2> 并没有改变局部变量的作用域
3> 所有的test函数都共享着一个变量b
九、递归的2个条件:
1.函数自己调用自己
2.必须有个明确的返回值
数据类型总结
一、基本数据类型
1.int
1> long int、long:8个字节 %ld
2> short int、short:2个字节 %d %i
3> unsigned int、unsigned:4个字节 %zd
4> signed int、signed、int:4个字节 %d %i
2.float\double
1> float :4个字节 %f
2> double:8个字节 %f
3.char
1> 1个字节 %c %d
2> char类型保存在内存中的是它的ASCII值
'A' --> 65
二、构造类型
1.数组
1> 只能由同一种类型的数据组成
2> 定义:数据类型 数组名[元素个数];
2.结构体
1> 可以由不同类型的数据组成
2> 先定义类型,再利用类型定义变量
三、指针类型
1.变量的定义
int *p;
2.间接操作变量的值
int a = 10; p = &a; *p = 20;
四、枚举类型
使用场合:当一个变量只允许有几个固定取值时
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------