性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

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

關(guān)于軟件的作用域和生命周期的一些理解

      C語(yǔ)言中最重要的就是函數(shù)與變量。

      C語(yǔ)言可以說(shuō)是規(guī)則最少的高級(jí)語(yǔ)言,好處是學(xué)起來(lái)好學(xué),壞處用起來(lái)難用(主要真針對(duì)大型項(xiàng)目復(fù)雜應(yīng)用)。

      好像C語(yǔ)言從來(lái)沒(méi)有一個(gè)專題來(lái)講“域”的概念,或者總是隱晦的給出,因?yàn)檫@個(gè)問(wèn)題更確切的應(yīng)該來(lái)自于一種編程的理念,準(zhǔn)確的說(shuō)C只是一種面向過(guò)程實(shí)現(xiàn)的語(yǔ)言,語(yǔ)言的本質(zhì)只是工具。

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

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

      全局變量、局部變量、函數(shù)復(fù)用放到一起聊一聊。

      全局變量,當(dāng)你定義以后,他的作用域就是全局的,也就是在整個(gè)軟件生命周期中(軟件沒(méi)有結(jié)束運(yùn)行之前),任何函數(shù)都可以訪問(wèn)該變量,這種情況下一個(gè)變量的作用域是全局的,生命周期是無(wú)限的。

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

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

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

      接下里聊一聊函數(shù)復(fù)用,軟件終極理念之一便是“復(fù)用”,當(dāng)然不是這里的狹隘的函數(shù)復(fù)用,所謂的函數(shù)復(fù)用,就是你編寫(xiě)的一個(gè)函數(shù),可以直接被他人應(yīng)用,或者以源碼的方式or以庫(kù)的方式添加到他人的工程中。

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

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

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺(jué)得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 3
收藏 2
關(guān)注 150
成為作者 賺取收益
全部留言
0/200
  • chaochao1545 2021-10-12 13:35
    圍觀學(xué)習(xí)
    回復(fù)