找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5874|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

c語(yǔ)言判斷一個(gè)值是否變化是用全局變量還是靜態(tài)局部變量來(lái)保存該值

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:389903 發(fā)表于 2019-10-12 19:22 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 anksy 于 2019-10-12 19:24 編輯

小弟正在自學(xué)C語(yǔ)言。有個(gè)問(wèn)題想請(qǐng)大家?guī)蛦?wèn)解答一下。
c語(yǔ)言判斷一個(gè)值是否變化是用全局變量還是靜態(tài)局部變量來(lái)保存該值?如果用上了全局變量或者靜態(tài)局部變量,那么該函數(shù)是不是就變成了不可重入函數(shù)?
例如
1:
unsigned int i = 0;
unsigned int a = 0;


void fun()
{
   i++;
  if(i != a)
  {
     a = i;
  }
}
///////////////////////////////
2:
unsigned int i = 0;


void fun()
{
   static unsigned int a = 0;
   i++;
  if(i != a)
  {
     a = i;
  }
}
這里的a就用來(lái)保存i的值。那么是用那種方式比較好?或者兩種都不可取。另外這個(gè)fun()是不是就變成了不可重入函數(shù)?


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:277550 發(fā)表于 2019-10-13 09:55 | 只看該作者
一般用全局變量,容易查找。。。。
回復(fù)

使用道具 舉報(bào)

板凳
ID:623195 發(fā)表于 2019-10-13 10:59 | 只看該作者
局部可以引用和改變?nèi)肿兞浚植客獠荒芤煤透淖兙植孔兞。只要遵循這個(gè)就可以了,其他不用過(guò)于糾結(jié)
回復(fù)

使用道具 舉報(bào)

地板
ID:623196 發(fā)表于 2019-10-13 11:08 來(lái)自手機(jī) | 只看該作者
用全局,全局容易在主函數(shù)中直接找到其值
回復(fù)

使用道具 舉報(bào)

5#
ID:619250 發(fā)表于 2019-10-13 11:34 | 只看該作者
第一種方式會(huì)好點(diǎn),第二種變量a雖然保存了i的值,但是沒(méi)辦法從函數(shù)外面讀取,沒(méi)有太大意義
回復(fù)

使用道具 舉報(bào)

6#
ID:389903 發(fā)表于 2019-10-13 12:23 | 只看該作者
謝謝大家的回復(fù)。昨晚自己也思考了一晚。@wrs 這位兄弟說(shuō)的很對(duì)。發(fā)現(xiàn)自己太過(guò)于糾結(jié)于書本字面上的意思了。其實(shí)存在即是是合理,只要在編寫程序時(shí)。知道自己在做什么。靈活運(yùn)用規(guī)則。
回復(fù)

使用道具 舉報(bào)

7#
ID:623337 發(fā)表于 2019-10-13 16:35 | 只看該作者
用全局,全局容易在主函數(shù)中直接找到其值
回復(fù)

使用道具 舉報(bào)

8#
ID:48207 發(fā)表于 2019-10-13 17:11 | 只看該作者
使用第一個(gè)方法,用全局變量比較方便
回復(fù)

使用道具 舉報(bào)

9#
ID:623259 發(fā)表于 2019-10-13 20:09 | 只看該作者
用全局變量先看,看完了如果此變以量不需要改為局部變量。這樣最方便了。
10#
ID:623493 發(fā)表于 2019-10-13 20:47 | 只看該作者
全局和靜態(tài)局部都可以,但是如果用了全局,就是要讓其它模塊也能夠修改和訪問(wèn)這個(gè)值.而如果用了靜態(tài)局部,就只是想控制在本函數(shù)中.比如該函數(shù)首次運(yùn)行的標(biāo)識(shí),就可以用靜態(tài)局部的方式保存.這樣本函數(shù)外的程序就訪問(wèn)不到這個(gè)標(biāo)識(shí),而這個(gè)標(biāo)識(shí)又可以決定函數(shù)運(yùn)行的不同處理分支.
回復(fù)

使用道具 舉報(bào)

11#
ID:608164 發(fā)表于 2019-10-13 21:21 | 只看該作者
用全局變量,全局變量容易在主函數(shù)中直接找到其值
回復(fù)

使用道具 舉報(bào)

12#
ID:612140 發(fā)表于 2019-10-13 22:02 | 只看該作者
用全局變量吧
回復(fù)

使用道具 舉報(bào)

13#
ID:623734 發(fā)表于 2019-10-14 11:00 | 只看該作者
一般用靜態(tài)局部變量;全局變量容易被其它函數(shù)修改
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表