宏定义和typedef
2016-01-09 本文已影响134人
MarkTang
**typedef**
typedef
typedeef 原有数据类型别名
可以给系统类型起别名 也可以给自定义类型
指向函数起别名
int (*functionPpoint)(int,int)
这种指向函数的别名就是 函数名称
**文件包含**
文件包含
#include<>
先去编译器 —> 再去环境查找
#include “”
先去编译器查找—>再去编译器—> 再去环境查找
头文件卫士 防止重复导入
#ifndef __ZS__H__
#define__ZS__H__
#endif
**宏定义**
#define SCORE 100
#ifdef SCORE //判断有没有定义这个宏
#elif COUNT
#else
#endif
#ifndef Score //没有定义这个宏满足条件
#else
#endif
**条件编译**
条件编译
只会将满足条件的编译,后面内容将不再编译
#define SCORE 100
#if SCORE ==100
#elif
#else
#endif
优点:缩小应用程序的大小
一般用于调试和发布阶段进行测试
#define NJLog(format,…) printf(format,##_VA_ARGS__)
#else
NJLog(format,…)
**宏定义**
宏定义
格式:
1.不带参数
#define 宏名值
注意不要分号
#define COUNT 5
2.带参数
提前
结束:
#undef COUNT
**局部变量**
局部变量
概念;局部变量就是定义在函数,代码块和函数形参雷彪中的变量,我们就称之为局部变量
作用范围:从定义的的哪一行开始一直知道遇到大括号或者遇到return为止
特点:相同作用域范围内不能出现同门的局部变量
不同作用域范围内出现同门的局部变量,内部的局部变量会覆盖外部的局部变量
注意:局部变量没有固定的初始化值,如果没有对局部变量惊醒初始化,那么局部变量中是一些随机的值,所以开发中千万不要使用位初始化的局部变量
存储位置:局部变量存储在栈中,荡作用域结束系统会自动释放栈中的局部变量
**const关键字**
const关键字
类型修饰符
可以让基本数据类型的变量位常量
普通变量
左边
const int num = 100;
右边
int const num = 100;
指针
如果写在指针类型左边,意味着指针指向可以改变,但是指向的内存空间中的值不能改变
左边
const char *name =“zyz”;
如果卸载指针类型的右
右边
char const *name =“zyz”;
指针右边