03-条件编译
如果定义了A这个宏 就编译#if和endif之间的代码
#if defined(B)
printf("aaaaa\n");
#endif
如果没有定义A这个宏, 就编译#if和endif之间的代码
#if !defined(A)
printf("bbbbbb\n");
#endif
注意点: 在编写条件编译的时候一定要在后面加上 #endif
#endif 的作用是告诉条件编译什么时候结束
static-extern对函数的作用
外部函数:定义的函数能被本文件和其它文件访问
1> 默认情况下所有的函数都是外部函数
2> 在不同文件中不能有相同名称的外部函数
extern的作用:
1> 完整的定义一个外部函数
2> 完整的声明一个外部函数
内部函数:定义的函数只能被本文件访问
1> 不同文件中可以有相同名称的内部函数
static的作用:
1> 定义一个内部函数
2> 声明一个内部函数
static-extern对全局变量的作用
全局变量分为2种:
1.>外部全局变量
>在本文件和其它文件中都可以访问的全局变量称之为外部全局变量
>不同文件中的外部全局变量代表着同一块存储空间
>所有同名的全局变量都代表着同一块存储空间
2.>内部全局变量
>只能在本文件中访问的全局变量称之为内部全局变量
extern对全局变量的作用:
用来"声明"一个外部全局变量
static对全局变量的作用:
用来定义一个外部全局变量
默认情况下所有的全局变量都是外部全局变量
所有同名的全局变量都代表着同一块存储空间
static对局部变量的作用
普通局部变量和静态局部变量的区别
1.存储空间不一样
2.普通局部变量没有显示初始化没有固定的初始化值,
而静态局部变量如果没有显示初始化有固定初始化值,默认就是0
3. 用static修饰局部变量,会延长局部变量的生命周期,但不会改变TA的作用域
static修饰局部变量的使用场合:
1.如果某个变量调用频率非常高,而且这个变量的值是固定不变的,就可以使用static来修饰该局部变量,提高性能
typedef基本概念
tepedef的作用:给现有的数据类型起一个外号(别名)
> 有利于加强数据类型的描述性, 提高了代码的可读性
> 提高了程序的可扩展性, 移植性
> 减少了代码的书写工作量, 简化了代码
注意点:
typedef 仅仅是给原有的数据类型起了一个别名,并不是创建一个新的数据类型
注意点:如果通过typedef给指向函数的指针起别名 指针变量的名称就是别名
typedef不仅可以写在函数外面还可以写在函数里面,只要在使用别名之前定义就OK
上一页 [1] [2]

【责编:peter】