在函数中的默认的存储类型说明符的变量是什么存储类型??

在C语言中的问题、、... 在C语言中的问题、、 展开
 我来答
椴iejdhifghj
推荐于2016-07-09 · TA获得超过4701个赞
知道小有建树答主
回答量:622
采纳率:0%
帮助的人:137万
展开全部
1) 所有全局变量全部以g_开头,并且尽可能声明成static类型.
2) 尽量杜绝跨文件访问全局变量.如果的确需要在多个文件内访问同一变量,应该由该变量定义所在文件内提供GET/PUT函数实现.
3) 全局变量必须要有一个初始值,全局变量尽量放在一个专门的函数内初始化.
4) 如调用的函数少于三个,请考虑改为局部变量实现.

存储类说明符:
Auto:只在块内变量声明中被允许, 表示变量具有本地生存期.
Extern:出现在顶层或块的外部变量函数与变量声明中,表示声明的对象具有静态生存期, 连接程序知道其 名字.
Static:可以放在函数与变量声明中,在函数定义时,只用于指定函数名,而不将函数导出到链接程序,在函数声明中,表示其后边会有定义声明的函数,存储类型static.在数据声明中,总是表示定义的声明不导出到连接程序.

1、函数
C语言中一个人为的规范:在.h文件中声明的函数,如果在其对应的.c文件中有定义,那么我们在声明这个函数时,不使用extern修饰符, 如果反之(在其.c中没定义),则必须显示使用extern修饰符.
所以在C语言的.h文件中,我们会看到两种类型的函数声明. 带extern的,还不带extern的, 简单明了,一个是引用外部函数,一个是自己声明并定义的函数.

2、全局变量.
全局变量的使用不可避免, 比如,在first.c中需要使用一个全局变量G_test, 那么我们可以在first.h中,定义 TPYE G_test. 与对函数的使用类似, 在second.c中我们的开发人员发现他也需要使用这个全局变量, 而且要与first.c中一样的那个, 如何处理? 对,我们可以仿照函数中的处理方法, 在second.h中再次声明TPYE G_test, 根据extern的用法,以及c语言中默认的存储类型, 在两个头文件中声明的TPYE G_test,其实其存储类型都是extern, 也就是说不必我们操心, 连接程序会帮助我们处理一切. 但我们又如何区分全局变量哪个是定义声明,哪个是引用声明呢?这个比函数要复杂一些, 一般在C语言中有如下几种模型来区分:
a、初始化语句模型
顶层声明中,存在初始化语句时,表示这个声明是定义声明,其他声明是引用声明。C语言的所有文件之中,只能有一个定义声明。
按照这个模型,我们可以在first.h中定义如下TPYE G_test=1;那么就确定在first中的是定义声明,在其他的所有声明都是引用声明。
b、省略存储类型说明
在这个模型中,所有引用声明要显示的包括存储类extern,而每个外部变量的唯一定义声明中省略存储类说明符。
这个与我们对函数的处理方法类似,不再举例说明。
http://hi.baidu.com/pepsi360/blog/item/07c92ba8764088baca130c37.html
arongustc
科技发烧友

2011-12-25 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:6002万
展开全部
auto类型,也就是保存在堆栈上 的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
饱满又健壮灬小鸥2436
2011-12-26
知道答主
回答量:2
采纳率:0%
帮助的人:3334
展开全部
auto
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
命0000运
2011-12-25
知道答主
回答量:51
采纳率:0%
帮助的人:26.3万
展开全部
int型吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式