湖南太平洋建设集团网站猴王水果竞猜网站建设
news/
2025/9/26 13:33:34/
文章来源:
湖南太平洋建设集团网站,猴王水果竞猜网站建设,免费网站备案号码,Python做网站 性能关键字static的作用是什么#xff1f; 这个简单的问题很少有人能回答完全。在C语言中#xff0c;关键字static有三个明显的作用#xff1a; 1、在函数体#xff0c;一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2、 在模块内#xff08;但在函数体外… 关键字static的作用是什么 这个简单的问题很少有人能回答完全。在C语言中关键字static有三个明显的作用 1、在函数体一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2、 在模块内但在函数体外一个被声明为静态的变量可以被模块内所有函数访问但不能被模块外其它函数访问。它是一个本地的全局变量。 3、在模块内一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是这个函数被限制在声明它的模块的本地范围内使用。 大多数应试者能正确回答第一部分一部分能正确回答第二部分但是很少的人能懂得第三部分。做为一个合格的软件工程师我们要懂得第三部分的作用要懂得本地化数据和代码范围的好处和重要性。 int testStatic() { int x1; x; return x; } main() { int i; for(i0;i5;i) printf(%d/n,testStatic()); } 输出为 2 2 2 2 2 int testStatic() { static int x1; x; return x; } main() { int i; for(i0;i5;i) printf(%d/n,testStatic()); } 输出为 2 3 4 5 6 const 有什么用途 1可以定义 const 常量 2const可以修饰函数的参数、返回值甚至函数的定义体。被const修饰的东西都受到强制保护可以预防意外的变动能提高程序的健壮性。 const意味着只读。区别如下代码的功能非常重要。 const int a; int const a; const int *a; int * const a; int const * a const; 前两个作用是一样的a是一个常整型数。 第三个意味着a是一个指向常整型数的指针也就是整型数是不可修改的但指针可以。 第四个意思是a是一个指向整型数的常指针也就是指针指向的整型数是可以修改的但指针是不可修改的。 最后一个意味着a是一个指向常整型数的常指针也就是指针指向的整型数是不可修改的同时指针也是不可修改的。 1关键字const的作用是为给读你代码的人传达非常有用的信息。例如在函数的形参前添加const关键字意味着这个参数在函数体内不会被修改属于输入参数。在有多个形参的时候函数的调用者可以凭借参数前是否有const关键字清晰的辨别哪些是输入参数哪些是可能的输出参数。 2合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数防止其被无意的代码修改这样可以减少bug的出现。 const在C语言中则包含了更丰富的含义而在C语言中仅意味着只能读的普通变量可以称其为不能改变的变量这个说法似乎很拗口但却最准确的表达了C语言中const的本质在编译阶段需要的常数仍然只能以#define宏定义故在C语言中如下程序是非法的 const int SIZE 10; char a[SIZE]; /* 非法编译阶段不能用到变量 */ 以下是工作中的使用const例子 const unsigned char * pbyData; unsigned char const DayPerMonth[12] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } ; extern void dp_write_dsp_block ( const word *bp, word len ); const unsigned short cnstUni2InterMapSparseIdx[]; volatile问题 volatile的语法与const是一样的但是volatile的意思是“在编译器认识的范围外这个数据可以被改变”。不知何故环境正在改变数据可能通过多任务处理所以volatile告诉编译器不要擅自作出有关数据的任何假设——在优化起家这是特别重要的。如果编译器说“我已经吧数据读入寄存器而且在没有与寄存器接触。”在一般情况下它不需要再读入这个数据。但是如果数据是volatile修饰的编译器则是不能做出这样的假定因为数据可能被其他进程改变了编译器必须重新读这个数据而不是优化这个代码。就像建立const对象一样程序员也可以建立volatile对象甚至还建立const volatile对象。这个对象不能被程序员改变但可通过外面的工具改变。 volatile对象每次被访问时必须重新读取这个变量的值而不是用保存在寄存器中的备份。下面时volatile变量的几个例子 .并行设备的硬件寄存器如状态寄存器 .一个中断服务子程序中会访问到的非自动变量Non-automatic variables .多现成应用中被几个任务共享的变量。 一个参数可以const同时也是volatile一个指针也是可以为volatile的但是具体编程时要小心要保证不被意外修改。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/916657.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!