首页 > 编程知识 正文

C语言中关键字,c语言关键字和函数

时间:2023-05-05 09:09:54 阅读:259982 作者:2327

《c语言关键字的用法详解》由会员分享,可在线阅读,更多相关《c语言关键字的用法详解(10页珍藏版)》请在人人文库网上搜索。

1、最新 料推荐1. Static 用法1.1 static 声明的变量在 C语言中有两方面的特征:1) 、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。2) 、变量用 static 告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。1.2 特点A. 若全局变量仅在单个C 文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;B. 若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度;C. 设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,。

2、需要考虑重入问题;D. 如果我们需要一个可重入的函数,那么,我们一定要避免函数中使用static变量 ( 这样的函数被称为:带“内部存储器”功能的的函数)E. 函数中必须要使用static变量情况 : 比如当某函数的返回值为指针类型时,则必须是static的局部变量的地址作为返回值,若为auto类型,则返回为错指针。函数前加static使得函数成为静态函数。但此处 “static的”含义不是指存储方式,而是指对函数的作用域仅局限于本文件( 所以又称内部函数) 。使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名。扩展分析 : 术语 static。

3、有着fqdbq历史. 起初,在C 中引入关键字static是为了表示退出一个块后仍然存在的局部变量。随后,static在 C 中有了第二种含义:用来表示不能被其它文件访问的全局变量和函数。为了避免引入新的关键字,所以仍使用static关键字来表示这第二种含义。最后,C+ 重用了这个关键字,并赋予它与前面不同的第三种含义:表示属于一个类而不是属于此类的任何特定对象的变量和函数( 与 Java中此关键字的含义相同) 。1.3 关键字 static 的作用是什么?这个简单的问题很少有人能回答完全。在C 语言中,关键字static有三个明显的作用:1最新 料推荐1.3.1 在函数体,一个被声明为静态的变。

4、量在这一函数被调用过程中维持其值不变。inttestStatic()intx=1;x+;returnx;main()inti;for(i=0;i 快乐的自行车 ,第 174-175 页 )与 auto 类型 (普通 )局部变量相比,static 局部变量有三点不同1.3.4.1存储空间分配不同auto类型分配在栈上,属于动态存储类别,占动态存储区空间,函数调用结束后自动释放 ,而 static 分配在静态存储区,在程序整个运行期间都不释放.两者之间的作用域相同 ,但生存期不同.3最新 料推荐1.3.4.2static 局部变量在所处模块在初次运行时进行初始化工作,且只操作一次3.对于局部静态变量,如。

5、果不赋初值,编译期会自动赋初值0 或空字符 ,而 auto 类型的初值是不确定的.(对于 C+ 中的 class 对象例外 ,class 的对象实例如果不初始化,则会自动调用默认构造函数,不管是否是static 类型 )特点 :static 局部变量的 ”记忆性 ”与生存期的 ”全局性 ”所谓 ”记忆性 ”是指在两次函数调用时,在第二次调用进入时,能保持第一次调用退出时的值 .示例程序一#includeusingnamespacestd;voidstaticLocalVar()staticinta=0;/运行期时初始化一次,下次再调用时,不进行初始化工作cout ( 影印版 )第 103-10。

6、5页 )下面针对示例程序二,分析在多线程情况下的不安全性.(为方便描述 ,标上行号 )constchar*IpToStr(UINT32IpAddr) staticchar strBuff16;/static局部变量 ,用于返回地址有效constunsignedchar*pChIP=(constunsignedchar *)&IpAddr;sprintf(strBuff,%u.%u.%u.%u,pChIP0,pChIP1,pChIP2,pChIP3);returnstrBuff; 假设现在有两个线程A,B 运行期间都需要调用IpToStr() 函数 ,将 32 位的 IP 地址转换成点5最新 料。

7、推荐分 10制的字符串形式. 现 A 先 得 行机会 ,行IpToStr(),入的参数是0x0B090A0A,序 行完 返回的指 存 区内容是: ” 10.10.9.11 ” , 行到时,失去 行 , 度到 B 程 行 , B 程 入的参数是 0xA8A8A8C0,行至 ,静 存 区的内容是192.168.168.168.当再 度到A 行 ,从 行 ,由 于 strBuff 的 全 局 唯 一 性 ,内 容 已 经 被 B 线 程 冲 掉 ,此 时 返 回 的 将 是192.168.168.168字符串 ,不再是 10.10.9.11字符串 .二、外部静 量函数在 C 中 static 有了第。

8、二种含 :用来表示不能被其它文件 的全局 量和函数。,但 了限制全局 量/ 函数的作用域,函数或 量前加static使得函数成 静 函数。但此 “ static的含” 不是指存 方式,而是指 函数的作用域 局限于本文件(所以又称内部函数) 。注意此 , 于外部 (全局 ) 量 , 不 是否有 static 限制 , 它的存 区域都是在静 存 区 , 生存期都是全局的 . 此 的 static 只是起作用域限制作用 , 限定作用域在本模 (文件 )内部 .使用内部函数的好 是:不同的人 写不同的函数 ,不用担心自己定 的函数,是否会与其它文件中的函数同名。示例程序三 :/file1.cppsta。

9、ticintvarA;intvarB;externvoidfunA()staticvoidfunB()/file2.cppexternintvarB;/使用 file1.cpp 中定 的全局 量6最新 料推荐externintvarA;/ 错误 !varA 是 static 类型 ,无法在其他文件中使用externvodfunA();/使用 file1.cpp 中定义的函数externvoidfunB();/错误 !无法使用 file1.cpp文件中 static 函数2. extern 用法外部函数:( 1) 在定义函数时,如果在函数首部的最左端冠以关键字extern , 则表示此函数是外部函数,可供其它文件调用。如函数首部可以写为extern int fun( int a , int b )这样,函数 fun 就可以为其它文件调用。C 语言规定, 如果在定义函数时省略extern ,则隐含为外部函数。( 2) 在需要调用此函数的文件中,用extern 声明所用的函数是外部函数。7。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。