宏定义和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”;

指针右边
上一篇下一篇

猜你喜欢

热点阅读