- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c 程序的存储结构(Storage structure of C program)
c 程序的存储结构(Storage structure of C program)
void (* singal (char * prt, float f)) (int);
程序存储空间c 2010 - 12 - 07 10: 16: 17 阅读82 评论0 字号: 大中小 订阅
一、c程序存储空间布局
c程序一直由下列部分组成:
1) 正文段 - - cpu执行的机器指令部分; 一个程序只有一个副本; 只读, 防止程序由于意外事故而修改自身指令;
2) 初始化数据段 (数据段) - - 在程序中所有赋了初值的全局变量, 存放在这里.
3) 非初始化数据段 (bss段) - - 在程序中没有初始化的全局变量; 内核将此段初始化为0.
4) 栈 - - 增长方向: 自顶向下增长; 自动变量以及每次函数调用时所需要保存的信息 (返回地址; 环境信息).
5) 堆 - - 动态存储分.
| ----------- |
| |
| ----------- |
| 栈 |
| ----------- |
| | |
| \ | / |
| |
| |
| / | \ |
| | |
| ----------- |
| 堆 |
| ----------- |
| 未初始化 |
| ----------- |
| 初始化 |
| ----------- |
| 正文段 |
| ----------- |
二、 面向过程程序设计中的static
1. 全局静态变量
在全局变量之前加上关键字static, 全局变量就被定义成为一个全局静态变量.
1) 内存中的位置: 静态存储区 (静态存储区在整个程序运行期间都存在)
2) 初始化: 未经初始化的全局静态变量会被程序自动初始化为0 (自动对象的值是任意的, 除非他被显示初始化)
3) 作用域: 全局静态变量在声明他的文件之外是不可见的.准确地讲从定义之处开始到文件结尾.
看下面关于作用域的程序:
/ / teststatic1.c
void display ();
extern int n;
int main ()
{
n = 20;
printf (% d n , n);
display ();
return 0;
}
/ / teststatic2.c
static int n; / / 定义全局静态变量, 自动初始化为0, 仅在本文件中
可见
void display ()
{
n + +;
printf (% d n , n);
}
文件分别编译通过, 但link的时候teststatic1.c中的变量n找不到定义, 产生错误.定义全局静态变量的好处:
1 不会被其他文件所访问, 修改
2 其他文件中可以使用相同名字的变量, 不会发生冲突.
2. 局部静态变量
在局部变量之前加上关键字static, 局部变量就被定义成为一个局部静态变量.
1) 内存中的位置: 静态存储区
2) 初始化: 未经初始化的全局静态变量会被程序自动初始化为0 (自动对象的值是任意的, 除非他被显示初始化)
3) 作用域: 作用域仍为局部作用域, 当定义它的函数或者语句块结束的时候, 作用域随之结束.
注: 当static用来修饰局部变量的时候, 它就改变了局部变量的存储位置,
从原来的栈中存放改为静态存储区.但是局部静态变量在离开作用域之后, 并没有被销毁, 而是仍然驻留在内存当中, 直到程序结束, 只不过我们不能再对他进行访问.
当static用来修饰全局变量的时候, 它就改变了全局变量的作用域 (在声明他的文件之外是不可见的), 但是没有改变它的存放位置, 还是在静
态存储区中.
3. 静态函数
在函数的返回类型前加上关键字static, 函数就被定义成为静态函数.函数的定义和声明默认情况下是extern的, 但静态函数只是在声明他的文件当中可见, 不能被其他文件所用.
例如:
/ / teststatic1.c
void display ();
静态staticdis();
国际main()
{
display();
staticdis();
收益率0;
}
/ / teststatic2 C。
无效display()
{
staticdis();
printf(“display()一直被称为“\n”);
}
静态staticdis()
{
printf(“staticdis()一直被称为“\n”);
}
文件分别编译通过,但是连接的时候找不到函数staticdis()的定义,产生错误。
定义静态函数的好处:
1 其他文件中可以定义相同名字的函数,不会发生冲突
2 静态函数不能被其他文件所用。
存储说明符汽车,登记,extern,静态的,对应两种存储期:自动存储期和静态存储期。
汽车和登记对应
您可能关注的文档
- 2015年最流行的男孩女孩英文名字推荐大全(Boys and girls in 2015 the most popular English recommended name Daquan).doc
- 2015高考物理一轮复习课时跟踪检测(十二)牛顿运动定律的综合应用(二)试题及完整解析答案-39 - 副本(2015 college entrance examination physics a review class tracking detection (twelve) comprehensive application of Newton's law of motion (two) questions and.doc
- 2014期末(At the end of 2014).doc
- 20种ps技术(20 kinds of PS Technology).doc
- 21世纪前十年对世界有重大影响的100人(100 in twenty-first Century the first ten years of the world have a significant impact).doc
- 211+985大学分数线与重点专业(211+985 scores and focus on the professional university).doc
- 21天潜意识巨人训练(21 days training giant subconscious).doc
- 22《猴子种果树》(22 monkey fruit).doc
- 22岁的女生,要有成人的视觉(22 year old girl to have adult vision).doc
- 22岁女生。要有成人的视觉,理性的智慧。如何气场强大,内心坚定(A 22 year old girl. To have adult vision, rational wisdom. How powerful gas field, a strong heart).doc
- 剧本杀行业报告:内容创作规范与剧本市场拓展策略.docx
- 剧本杀行业区域市场区域文化特色与市场潜力分析报告.docx
- 剧本杀行业区域市场拓展实战案例研究.docx
- 剧本杀行业区域市场拓展路径与模式探索报告.docx
- 剧本杀行业区域市场竞争态势与品牌差异化策略研究报告.docx
- 剧本杀行业2025年西北区域市场市场细分领域竞争态势与品牌竞争策略分析研究报告.docx
- 剧本杀行业2025年西北市场拓展前景预测报告.docx
- 剧本杀行业2025年长沙市场发展潜力分析报告.docx
- 剧本杀行业2025年长三角市场竞争策略与布局分析.docx
- 医疗行业数据合规:2025年数据安全法实施后的合规监管挑战与应对.docx
最近下载
- 《第一单元 生活中的音乐学习项目二 音乐开启心灵之窗》教案(表格式)七年级音乐人教版(2024新版).pdf VIP
- 成功标书大餐——15份浙江省自然科学基金申请书.pdf VIP
- (辽宁富士电梯)系统故障代码及说明.doc VIP
- 2025版高考政治全程一轮复习必修2第一单元生产资料所有制与经济体制第一课我国的生产资料所有制课件.pptx VIP
- 陕西省专业技术人员继续教育2025公需课《党的二十届三中全会精神解读与高质量发展》20学时题库及答案.docx VIP
- 伤口换药护理操作.pptx VIP
- 贵州01-贵州省居住建筑节能设计标准DBJ52-49-20082.pptx VIP
- 《2023年度中国展览数据统计报告》.docx
- 城市名居商住楼房地产估价报告.doc VIP
- [说明]富士变频器维修与故障处理.doc VIP
文档评论(0)