嵌入式之goto對與錯篇

2021-10-24 11:53:55 字數 618 閱讀 2632

很多書籍都會把「」goto「」當成反面教材使用,認為其如果使用不當,將會造成很多意想不到的問題。但goto作為c語言的一部分,存在即合理,goto有它的缺點,也有它的優點。

缺點:

很容易把邏輯弄亂,增加理解難度,goto是可以實現無條件跳轉的,一旦跳轉,就忽略很前面很多**,特別是在在一些邏輯複雜的地方使用,會很容易出問題。所以goto能不用就不用,特別對於新手的,盡量避諱。

優點:

方便處理異常情況,特別是記憶體,系統資源的釋放。很多大型專案,開源專案,包括linux核心,都會使用goto來處理異常情況。

舉個例子,以下情況,大家第一反應是沒有問題的,其實是存在隱患的。如果變數pdate2申請失敗,則退出函式。那麼問題來了, pdate 申請成功了,但沒有得到釋放,出現了記憶體洩漏。所以這種情況如果使用goto,就很容易解決問題。

int

module_init()

goto實現**

int

module_init()

總結:存在即合理,goto視情況而定。

非嵌入式與嵌入式的區別

非嵌入式是通過軟體控制硬體,軟硬體之間直接聯絡來實現要求。但是一旦硬體發生改變軟體也要改變,為了降低這種偶合度過高的問題,出現了嵌入式。嵌入式在軟體和硬體之間新增了作業系統,軟體通過控制作業系統進而控制硬體,硬體發生改變並不會導致軟體也發生改變,這為軟體開發人員節約了很多時間,並且嵌入式能在已有的硬...

Linux嵌入式之IO程式設計總結篇

步驟如下 步驟2 列出伺服器中的所有檔案 opendir readdir 涉及的 檔案io 系統呼叫函式有 open read write close 涉及的 標準io c庫函式有 fopen fputs fgets fputc fgetc fread fwrite fclose 客戶端client...

嵌入式系統 設計開發篇

嵌入式系統設計方法 一般由5個階段構成 需求分析 體系結構設計 軟硬體設計 系統整合 系統測試 宿主機和目標機的連線 1 物理連線 指宿主機與目標機上的一定物理埠通過物理線路連線在一起 常用的連線方式有 串列埠 乙太網介面 ocd方式。2 邏輯連線 指宿主機與目標機間按某種通訊協議建立起來的通訊連線...