博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言小知识
阅读量:5282 次
发布时间:2019-06-14

本文共 1404 字,大约阅读时间需要 4 分钟。

关键字static的作用是什么?

这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:
•在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
•在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
•在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

关键字extern的作用是什么?

extern我用了几次,主要是声明外部变量的作用,我用的也是在头文件中。比如说,你有一个project.c,lib.c,lib.h,三个文件,在lib.h里面有lib.c的变量定义,比如a[4]数组,也就是说这个变量是lib.c的全局变量,当我在project.c文件中要用到的时候,即使a【4】是全局变量,但是也只是在它本文件里面有用,别的文件没法用。但这时project.c要用怎么办呢?在project.c里面改用extern 声明a【4】,他会自动找到别的文件里面的a【4】,这也是为什么如果一个文件有全局变量或者是函数只在本文件里面用的时候要加上static,就是为了防止被别的文件extern声明给弄过去了。extern声明是不分配内存的,只在别的文件中找有没有定义。我做过这样的实验,在文件project.c里面用extern声明a【4】,同时又在lib.c里面extern声明a【4】,这导致在链接的时候提示错误,说没有找到a【4】。所以总的来说extern就是用来使用 别的地方的变量的。

 

问 :关于return的问题,请各位高手指教. if (nNum>0 && nNum <= 100) {
  printf("The a is in 0 to 100\n");   return 0;   }   printf("The a is not in 0 to 100\n") ;   return 0; 这个程序中在if的大括号里如果没有return 0 这条语句的话,我输入数字5,输出结果是The a is in 0 to 100及The a is not in 0 to 100两条语句,但如果在if的大括号里加上return 0;的话,就只输出The a is in 0 to 100这一句。 不是说用if语句时,不管条件是否满足,都会执行下一条语句的吗?为什么我在if里加了return以后,就不再输出下一句了,功能和if-else一样了,书中也没有详细解释return的,所以我很不明白,请问这里的return到底是怎么返回的啊,
答:return ,看字面意思是“返回”,这个关键字的作用,就是当代码执行到return 时,函数就会立即结束,然后程序跳转到调用该函数的语句后面的代码去执行。在该例子中,if()中的return 0;执行之后,下面的所有代码都不会执行了,所以只会输出一行。你说“不是说用if语句时,不管条件是否满足,都会执行下一条语句的吗?”的完整表述应该是:if语句执行完毕后,会无条件地执行if语句下面的语句,而不是“下一条”语句。

 

转载于:https://www.cnblogs.com/Ice-water/archive/2011/11/08/2241690.html

你可能感兴趣的文章
discuz 文件模板edit
查看>>
查看CPU数量和核心数
查看>>
Android异步加载网络图片
查看>>
python学习之 - XML
查看>>
css问题小计
查看>>
Laravel学习笔记(三)数据库 数据库迁移
查看>>
ORACLE查看并修改最大连接数
查看>>
box-flex不均分问题
查看>>
Python--GIL 详解
查看>>
Oracle数据导入Mysql中
查看>>
BZOJ-4424 &&CodeForces-19E Fairy DP+dfs (Link-Cut-Tree可A)
查看>>
MongoDB学习笔记——聚合操作之group,distinct,count
查看>>
大道至简读后感(第四章)
查看>>
IDA IDC Tutorials: Additional Auto-Commenting
查看>>
k8s-存储卷1-十二
查看>>
在Android中Intent的概念及应用(二)——Intent过滤器相关选项
查看>>
数据库备份问题
查看>>
前端面试题(4)iframe有哪些优点?iframe缺点是什么?
查看>>
SQLSERVER存储过程基本语法
查看>>
HDU 2067 小兔的棋盘
查看>>