久久久国产精品视频袁燕,99re久久精品国产,亚洲欧美日韩国产综合v,天天躁夜夜躁狠狠久久,激情五月婷婷激情五月婷婷

程序小白
認證:優(yōu)質創(chuàng)作者
所在專題目錄 查看專題
關于軟件的作用域和生命周期的一些理解
淺析RTOS中的鉤子函數(HOOK)
RTOS的時間片調度不同處——FreeRTOS與RTT
FreeRTOS中任務間的同步——事件組與全局變量
FreeRTOS的優(yōu)先級翻轉與繼承
作者動態(tài) 更多
基于stm32采用PWM驅動伺服控制器學習筆記
05-13 15:25
基于STM32驅動TM1638學習筆記——軟件篇
04-19 12:42
基于TM1638驅動8位數碼管設計分享
02-24 11:26
RT-Thread驅動之路: Studio創(chuàng)建FAL分區(qū)⑤
01-02 08:30
RT-Thread驅動之路: Studio 掛載通用SPI flash④
2024-12-23 13:41

關于軟件的作用域和生命周期的一些理解

      C語言中最重要的就是函數與變量。

      C語言可以說是規(guī)則最少的高級語言,好處是學起來好學,壞處用起來難用(主要真針對大型項目復雜應用)。

      好像C語言從來沒有一個專題來講“域”的概念,或者總是隱晦的給出,因為這個問題更確切的應該來自于一種編程的理念,準確的說C只是一種面向過程實現的語言,語言的本質只是工具。

軟件是有生命周期的,除了main函數中的while(1)以外,

      假如你從事的項目,所有的軟件細節(jié)都是由你一個人編寫,你可能會忽略域的概念,大型的軟件總是有很多人參與,每個人的權限總是需要受到限制,這里所謂的限制就是你對于整個軟件系統(tǒng)資源的權限。

      全局變量、局部變量、函數復用放到一起聊一聊。

      全局變量,當你定義以后,他的作用域就是全局的,也就是在整個軟件生命周期中(軟件沒有結束運行之前),任何函數都可以訪問該變量,這種情況下一個變量的作用域是全局的,生命周期是無限的。

      假如把while(1)去掉,那么在這個軟件執(zhí)行完最后一行代碼的時候,整個軟件就結束了,其生命周期也就結束了。

      局部變量,往往定義在函數內部,假設他是靜態(tài)局部變量,那么他的作用域是在整個函數的內部,你在其定義函數的外部任何地方想要對其訪問都是非法的,他是整個函數不可分割的一部分,也就是他們是一個整體,外部無法處理,也就不會被破壞。雖然他從外部無法被訪問但是他的生命周期是無限的。

      假如他被定義成非靜態(tài)的局部變量那么的生命周期是有限的,僅存在于函數被調用的范圍內。當函數完成調用以后,變量所占用的空間將被釋放。

      接下里聊一聊函數復用,軟件終極理念之一便是“復用”,當然不是這里的狹隘的函數復用,所謂的函數復用,就是你編寫的一個函數,可以直接被他人應用,或者以源碼的方式or以庫的方式添加到他人的工程中。

      假如一個函數中應用了全局變量,那么他不再是一個可復用的函數,全局變量定義的位置是在函數的外部,如果在函數中直接訪問全局變量,那么函數的完整性就被破壞了,有的小伙伴會想,那么我把其使用的全局變量一起移植到新的軟件工程當中不就OK了?

      這樣做到底可不可以?你要明白一件事情,為什么函數要訪問一個全局變量,或者是外部變量,那么函數想要完成的功能無法僅憑內部實現,需要外部協(xié)助,全局變量只是牽了一條線,實際是由于全局變量相關的多個函數協(xié)同完成。所以函數不在具備復用性。

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 3
收藏 2
關注 151
成為作者 賺取收益
全部留言
0/200
  • chaochao1545 2021-10-12 13:35
    圍觀學習
    回復