在說這個之前,我們要先明白:程序佔用三種類型的內存:靜態內存、棧內存、堆內存;
靜態內存:
用來保存局部static對象、類static數據成員以及定義在任何函數之外的變量 。
棧內存:
用來保存定義在函數內的非static對象。
分配在靜態內存或棧內存中的對象由編譯器自動創建和銷燬。
對於棧對象,僅在其定義的程序塊運行時才存在;
static對象在使用之前分配,在程序結束時銷燬。
堆內存:
在程序運行時分配。動態對象的生存週期由程序(用戶)來控制。
在說這個之前,我們要先明白:程序佔用三種類型的內存:靜態內存、棧內存、堆內存;
靜態內存:
用來保存局部static對象、類static數據成員以及定義在任何函數之外的變量 。
棧內存:
用來保存定義在函數內的非static對象。
分配在靜態內存或棧內存中的對象由編譯器自動創建和銷燬。
對於棧對象,僅在其定義的程序塊運行時才存在;
static對象在使用之前分配,在程序結束時銷燬。
堆內存:
在程序運行時分配。動態對象的生存週期由程序(用戶)來控制。
說明: 以下介紹示例的MCU地址空間如下: ROM空間爲:0x0000 0000 – 0x0000 8000 RAM空間爲:0x2000 0000 – 0x2000 2000
STM32中enumeration特殊使用方法 定義如下: /*! * STM32 Pin Names */ #define MCU