2012.07.05

static:

全局静态变量:作用范围局限于它的源文件,即只有本文件内的代码才可以访问它,变量名在其他文件内不可见

局部静态变量 :局限于特定函数,但出作用域并不释放,在函数体内的静态变量的值也能够维
静态函数 :作用范围仅限于它的源文件,即只有本文件内才能够调用,函数名在其他文件不可
存放位置 :程序开始时,存放在全局数据区,结束时释放空间,默认初始化值是0,使用时可 改变其值;
register
register: 请求编译器 尽可能 地将变量存在CPU内部寄存器中;
v 使用注意:
Ø register修饰变量的类型必须是CPU所接受的;
Ø register变量可能不是在内存中存储,所以不能使用&来获取变量的地址
const
v const int* a; int const *a; 是一个指向const int型的指针,a所指向的内存单元不可改写,所以(*a)++是不允许的,但a可 以改写,所以a++是允许的。
v int* const a; a是一个指向int型的const指针,*a是可以改写的,但a不允许改写。
v int const * const a; a是一个指向const int型的const指针,因此*a和a都不允许改写
v const 给读代码的人传达非常有用的信息。比如一个函数的参数是const char *,你在调用这个 函数时就可以放心地传给它char *或const char *指针,而不必担心指针所指的内存单元被改写。
尽可能多地使用 const 限定符,把不该变的都声明成只读,这样可以依靠编译器检查程序中 Bug,防止意外改写数据。
const 对编译器优化是一个有用的提示,编译器也许会把const变量优化成常量
extern
extern: 表明变量或函数的定义在别的文件中,下面用到的这些变量或是函数是外来的,不是本文件定义的,提示编译器遇到此变量或函数时,在其他模块中寻找定义;
struct
在网络协议、通信控制、嵌入式系统的C/C++编程中,我们经常要传送的不是简单的字节流(char型数组),而是多种数据组合起来的一个整体,其表现形式是一个结构体
union: 当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;
当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也可 以使用联合体来发挥其长处;
假设网络节点A 和网络节点B 中的通信协议涉及四类报文,报文格式为“报文类型字段+报文内容的结构体”,四个报文内容的结构体类型为STRUCTTYPE1~STRUCTTYPE4,请编写程序以最简单的方式组 织一个统一的报文数据结构
enum:
枚举类型声明代表常量的符号名称。
enum的默认值
  enum kids{nippy, slats, skippy, nina ,liz};
enum的指定值
  enum levels {low=100,medium=500,high=2000};
enum的用法
v
typedef :
typedef是C语言的关键字,其作用是 为一种数据类型定义一个新名字
v 格式: typedef  数据类型  自定义数据类型
v typedef unsigned long uint32;
v 在嵌入式的开发中,由于涉及到移植问题,typedef的功能就更引人注目了。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值