C语言关键字:auto、static、register、const
程序是由一个一个的语句组成的,下面本站小编就为大家总结一下C语言关键字:auto、static、register、const、volatile 、extern ,希望对您有所帮助!
auto
这个这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。
register
这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高效率。
static
常见的两种用途:
1>统计函数被调用的次数;
2>减少局部数组建立和赋值的开销.变量的建立和赋值是需要一定的处理器开销的,特别是数组等含有较多元素的存储类型。在一些含有较多的变量并且被经常调用的函数中,可以将一些数组声明为static类型,以减少建立或者初始化这些变量的开销.
详细说明:
1>、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。
2>、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。
3>当static用来修饰全局变量时,它就改变了全局变量的作用域,使其不能被别的程序extern,限制在了当前文件里,但是没有改变其存放位置,还是在全局静态储存区。
使用注意:
1>若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;
2>若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度;
3>设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题(只要输入数据相同就应产生相同的输出)。
const
被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。它可以修饰函数的参数、返回值,甚至函数的定义体。
作用:
1>修饰输入参数
a.对于非内部数据类型的输入参数,应该将“值传递”的方式改为“const引用传递”,目的'是提高效率。例如将void Func(A a) 改为void Func(const A &a)。
b.对于内部数据类型的输入参数,不要将“值传递”的方式改为“const引用传递”。否则既达不到提高效率的目的,又降低了函数的可理解性。例如void Func(int x) 不应该改为void Func(const int &x)。
2>用const修饰函数的返回值
a.如果给以“指针传递”方式的函数返回值加const修饰,那么函数返回值(即指针)的内容不能被修改,该返回值只能被赋给加const修饰的同类型指针。
如对于: const char * GetString(void);
如下语句将出现编译错误:
char *str = GetString();//cannot convert from 'const char *' to 'char *';
正确的用法是:
const char *str = GetString();
b.如果函数返回值采用“值传递方式”,由于函数会把返回值复制到外部临时的存储单元中,加const修饰没有任何价值。 如不要把函数int GetInt(void) 写成const int GetInt(void)。
-
二级C语言考试复习五要点
综观近几年全国计算机等级二级基础部分和C语言程序设计的题目,笔试中大多数考题是与大纲要求的基本内容一致的,难度不高,但内容十分广泛,应牢固掌握。以下是小编为您带来的二级C语言考试复习五要点,感谢您的阅读!一、了解试卷,胸中有数综观近几年全国计算机等级二级...
-
C语言输出菱形的方法
题目:输出行列都相等的菱形,如5行5列:行列123451*2***3*****4***5*分析:当行数等于总行数的一半时,*是递增的,递增为2。当行数大于总行数的一半时,*是递减的,递增为2。设有一个行列为n的菱形,我们用变量i作为行数,以0开始,ik作为n菱第i行要输出的*个数。则i<=n的中值(用m...
-
C语言的移位操作符使用方法
位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。以下是小编为大家搜索整理的C语言的移位操作符使用方法,希望能给大家带来帮...
-
win8系统安装c语言方法
在win8/win8.1中C语言VC无法运行,那么win8系统安装c语言方法又变成了什么呢?而现在的'计算机都是预装win8/8.1系统,对于比较原始的TurboC是无法运行的,现在应届毕业生小编向大家告诉大家win8系统运行TurboC软件的方法。win8系统安装c语言方法:win8系统运行TurboC...
相关文章
- Unit 5 It must belong to Caral section A英语评课稿
- DOS的Interlnk、Intersvr、Qbasic命令使用说明
- 英语美文阅读:Kerry: Anti-IS Coalition Could Contribute to B
- 英语阅读:VIT declines to acquire Ang Mo Kio property
- 托福英语写作范文:Examinations exert a pernicious influence on educat
- 英语满分作文:Reading-TheBestMeanstoAcquireknowledge
- 四级作文:Create a Conservation-Oriented Campus
- A Letter to Univsity Pesident about the Canteen Service on C
- Book5-Unit1Greatssientists的重点单词、词组整理
- Protecting water resources英语作文