欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6327|回復: 12
收起左側

c語言判斷一個值是否變化是用全局變量還是靜態局部變量來保存該值

  [復制鏈接]
ID:389903 發表于 2019-10-12 19:22 | 顯示全部樓層 |閱讀模式
本帖最后由 anksy 于 2019-10-12 19:24 編輯

小弟正在自學C語言。有個問題想請大家幫問解答一下。
c語言判斷一個值是否變化是用全局變量還是靜態局部變量來保存該值?如果用上了全局變量或者靜態局部變量,那么該函數是不是就變成了不可重入函數?
例如
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就用來保存i的值。那么是用那種方式比較好?或者兩種都不可取。另外這個fun()是不是就變成了不可重入函數?


回復

使用道具 舉報

ID:277550 發表于 2019-10-13 09:55 | 顯示全部樓層
一般用全局變量,容易查找。。。。
回復

使用道具 舉報

ID:623195 發表于 2019-10-13 10:59 | 顯示全部樓層
局部可以引用和改變全局變量,局部外不能引用和改變局部變量。只要遵循這個就可以了,其他不用過于糾結
回復

使用道具 舉報

ID:623196 發表于 2019-10-13 11:08 來自觸屏版 | 顯示全部樓層
用全局,全局容易在主函數中直接找到其值
回復

使用道具 舉報

ID:619250 發表于 2019-10-13 11:34 | 顯示全部樓層
第一種方式會好點,第二種變量a雖然保存了i的值,但是沒辦法從函數外面讀取,沒有太大意義
回復

使用道具 舉報

ID:389903 發表于 2019-10-13 12:23 | 顯示全部樓層
謝謝大家的回復。昨晚自己也思考了一晚。@wrs 這位兄弟說的很對。發現自己太過于糾結于書本字面上的意思了。其實存在即是是合理,只要在編寫程序時。知道自己在做什么。靈活運用規則。
回復

使用道具 舉報

ID:623337 發表于 2019-10-13 16:35 | 顯示全部樓層
用全局,全局容易在主函數中直接找到其值
回復

使用道具 舉報

ID:48207 發表于 2019-10-13 17:11 | 顯示全部樓層
使用第一個方法,用全局變量比較方便
回復

使用道具 舉報

ID:623259 發表于 2019-10-13 20:09 | 顯示全部樓層
用全局變量先看,看完了如果此變以量不需要改為局部變量。這樣最方便了。
回復

使用道具 舉報

ID:623493 發表于 2019-10-13 20:47 | 顯示全部樓層
全局和靜態局部都可以,但是如果用了全局,就是要讓其它模塊也能夠修改和訪問這個值.而如果用了靜態局部,就只是想控制在本函數中.比如該函數首次運行的標識,就可以用靜態局部的方式保存.這樣本函數外的程序就訪問不到這個標識,而這個標識又可以決定函數運行的不同處理分支.
回復

使用道具 舉報

ID:608164 發表于 2019-10-13 21:21 | 顯示全部樓層
用全局變量,全局變量容易在主函數中直接找到其值
回復

使用道具 舉報

ID:612140 發表于 2019-10-13 22:02 | 顯示全部樓層
用全局變量吧
回復

使用道具 舉報

ID:623734 發表于 2019-10-14 11:00 | 顯示全部樓層
一般用靜態局部變量;全局變量容易被其它函數修改
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表