Chinaunix首页 | 论坛 | 博客
  • 博客访问: 517537
  • 博文数量: 187
  • 博客积分: 3011
  • 博客等级: 中校
  • 技术积分: 2092
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-28 17:08
文章分类

全部博文(187)

文章存档

2011年(1)

2010年(8)

2009年(178)

我的朋友

分类: C/C++

2009-11-26 01:55:06

一、const修饰符

Const修饰符在C语言中是一个比较新的描述符,意即其所修饰的对象为常量。

说明:

1、必须初始化

const int i=5;  //合法

const int j;  //非法,导致编译错误

{const int j;j=5;} //非法

2、可以通过函数进行初始化

int value();

const int i=value();

3、限定符声明变量只能被读,即其值不可以修改

const int i=5;

int j=0; 

i=j;  //非法,导致编译错误

J=i;  //合法

4、可以在另一个连接文件中引用const常量

extern const int i;  //合法

extern const int j=10; //非法,常量不可以被再次赋值

5、数值常量和指针常量

const int p1  //p1是常量,p1的值不能被修改

const int *p2  //指针p2所指的内容是常量,不能被修改,当p的指向可以被修改。

Const int * const p3 //指针p3是常量,所指内容也是常量

二、Static修饰符

1、用static声明局部变量

该变量为静态局部变量,即该局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次该函数用时,该变量已有值,就是上一次函数调用结束时的值.

程序例子:

int fac(int n)

{

    static int f=1;

    f=f*n;

    return(f);

}

int main(int argc,char **argv)

{

    int i;

    for(i=1;i<5;i++)

    {

        Printf("%d!\n",i,fac(i));

    }

}

运行结果:

1!=1

2!=2

3!=6

4!=24

5!=120

2、用static声明外部变量

该变量为静态外部变量,该变量只限于被本文件引用,而不能被其他文件引用。

三、valatie修饰符

volatile修饰符号告诉编译程序不要对该变量所参与的操作进行某些优化。

一般来说,volatile用在如下的几个地方:

1)中断服务程序中修改的供其它程序检测的变量需要加volatile;

2)多任务环境下各任务间贡享的标志应该加volatile;

3)存储器映射的硬件寄存器通常也要加volatile说明,因为每次都它的读写都可能有不同意义;

程序例子:

time_t time_addition(volatile const struct timer *t,int a)

{

    int n;

    int x=0;

    volatile time_t then;

    

    then=t->value;

    for(n=0;n<1000;n++)

    {

        x=x+a;

    }

    return t->value-then;

}

阅读(714) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~