六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線(xiàn)學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

水滴石穿C語(yǔ)言之static辨析

[摘要]1、概述static 聲明的變量在C語(yǔ)言中有兩方面的特征:1)、變量會(huì)被放在程序的全局存儲(chǔ)區(qū)中,這樣可以在下一次調(diào)用的時(shí)候還可以保持原來(lái)的賦值。這一點(diǎn)是它與堆棧變量和堆變量的區(qū)別。2)、變量用static告知編譯器,自己僅僅在變量的作用范圍內(nèi)可見(jiàn)。這一點(diǎn)是它與全局變量的區(qū)別。2、問(wèn)題:Static...

1、概述

static 聲明的變量在C語(yǔ)言中有兩方面的特征:

1)、變量會(huì)被放在程序的全局存儲(chǔ)區(qū)中,這樣可以在下一次調(diào)用的時(shí)候還可以保持原來(lái)的賦值。這一點(diǎn)是它與堆棧變量和堆變量的區(qū)別。

2)、變量用static告知編譯器,自己僅僅在變量的作用范圍內(nèi)可見(jiàn)。這一點(diǎn)是它與全局變量的區(qū)別。

2、問(wèn)題:Static的理解

關(guān)于static變量,請(qǐng)選擇下面所有說(shuō)法正確的內(nèi)容:

A、若全局變量?jī)H在單個(gè)C文件中訪(fǎng)問(wèn),則可以將這個(gè)變量修改為靜態(tài)全局變量,以降低模塊間的耦合度;

B、若全局變量?jī)H由單個(gè)函數(shù)訪(fǎng)問(wèn),則可以將這個(gè)變量改為該函數(shù)的靜態(tài)局部變量,以降低模塊間的耦合度;

C、設(shè)計(jì)和使用訪(fǎng)問(wèn)動(dòng)態(tài)全局變量、靜態(tài)全局變量、靜態(tài)局部變量的函數(shù)時(shí),需要考慮重入問(wèn)題;

D、靜態(tài)全局變量過(guò)大,可那會(huì)導(dǎo)致堆棧溢出。

答案與分析:

對(duì)于A,B:根據(jù)本篇概述部分的說(shuō)明b),我們知道,A,B都是正確的。

對(duì)于C:根據(jù)本篇概述部分的說(shuō)明a),我們知道,C是正確的(所謂的函數(shù)重入問(wèn)題,下面會(huì)詳細(xì)闡述)。

對(duì)于D:靜態(tài)變量放在程序的全局?jǐn)?shù)據(jù)區(qū),而不是在堆棧中分配,所以不可能導(dǎo)致堆棧溢出,D是錯(cuò)誤的。

因此,答案是A、B、C。

3、問(wèn)題:不可重入函數(shù)

曾經(jīng)設(shè)計(jì)過(guò)如下一個(gè)函數(shù),在代碼檢視的時(shí)候被提醒有bug,因?yàn)檫@個(gè)函數(shù)是不可重入的,為什么?

unsigned int sum_int( unsigned int base )
{
unsigned int index;
static unsigned int sum = 0; // 注意,是static類(lèi)型的。
for (index = 1; index <= base; index++)
{
sum += index;
}
return sum;
}
答案與分析:

所謂的函數(shù)是可重入的(也可以說(shuō)是可預(yù)測(cè)的),即:只要輸入數(shù)據(jù)相同就應(yīng)產(chǎn)生相同的輸出。

這個(gè)函數(shù)之所以是不可預(yù)測(cè)的,就是因?yàn)楹瘮?shù)中使用了static變量,因?yàn)閟tatic變量的特征,這樣的函數(shù)被稱(chēng)為:帶“內(nèi)部存儲(chǔ)器”功能的的函數(shù)。因此如果我們需要一個(gè)可重入的函數(shù),那么,我們一定要避免函數(shù)中使用static變量,這種函數(shù)中的static變量,使用原則是,能不用盡量不用。

將上面的函數(shù)修改為可重入的函數(shù)很簡(jiǎn)單,只要將聲明sum變量中的static關(guān)鍵字去掉,變量sum即變?yōu)橐粋(gè)auto 類(lèi)型的變量,函數(shù)即變?yōu)橐粋(gè)可重入的函數(shù)。

當(dāng)然,有些時(shí)候,在函數(shù)中是必須要使用static變量的,比如當(dāng)某函數(shù)的返回值為指針類(lèi)型時(shí),則必須是static的局部變量的地址作為返回值,若為auto類(lèi)型,則返回為錯(cuò)指針。





主站蜘蛛池模板: 四虎免费视频 | 欧美一区二三区 | 亚洲激情在线看 | 人人干在线| 最近免费的中文字幕一 | 我要看黄色一级片 | 日本高清视频成人网www | 色综合久久综合 | 欧美天天在线 | 亚洲福利二区 | 亚洲综合站 | 性爽视频 | 四虎在线成人免费网站 | 欧美夜夜夜 | 桃花久久| 色播激情五月 | 亚洲va中文va欧美va爽爽 | 日韩一区二区在线播放 | 伊人久久大线蕉香港三级 | 在线播放性xxx欧美 在线播放色 | 亚洲一区二区三区影院 | 欧美在线视频免费看 | 亚洲欧美日韩在线精品一区二区 | 在线免费国产 | 手机在线播放av | 最新国产中文字幕 | 亚洲欧美日韩图片 | 午夜国产精品无套 | 亚洲 欧美 精品 | 午夜影院在线观看 | 天堂影院在线观看mv | 日日噜噜夜夜狠狠久久aⅴ 日日噜噜夜夜狠狠扒开双腿 | 四虎国产精品免费久久影院 | 天天草天天草 | 欧洲毛片 | 天天干天天拍天天射天天添天天爱 | 日本欧美一区二区三区视频 | 亚洲欧美另类精品久久久 | 青青草免费公开视频 | 小明www永久在线看 小黄鸭b站视频在线 | 日韩一级欧美一级一级国产 |