讀u boot深入學C語言框架 2

2021-07-06 08:27:23 字數 1522 閱讀 5451

#include #include #include // 功能 定義集合結構體

// 注:定義時對應位置要匹配

// 可更具需要自行新增所需成員

struct peripheralname_device;

// 功能 宣告和定義同型別的函式 (比如某個soc有多個功能相同的外設 可以這樣定義宣告)

// 框架 declare_soc名字_外設名字_function(用於標識同型別的外設的號碼) 可以再加入你需要的

#define declare_socname_peripheralname_function(law_param) \

int socname_peripheralname_##law_param##_goneng1(void) \

int socname_peripheralname_##law_param##_goneng2(int a) \

void socname_peripheralname_##law_param##_goneng3(void) \

void socname_peripheralname_##law_param##_goneng4(int a)

// 功能 初始化外設結構體成員

// 框架 init_外設名字_structure(用於標識同型別的外設的號碼, 一些你想加入的東西etc)

#define init_peripheralname_structure(law_param, name)

// 描述 使用上面的框架

// 1 定義和上面函式, 2 初始化結構體成員。

// 優點 大大縮短了**量和提高可移植性

declare_socname_peripheralname_function(1);

struct peripheralname_device peripheralname_1 =

init_peripheralname_structure(1,"soc_per_1");

declare_socname_peripheralname_function(2);

struct peripheralname_device peripheralname_2 =

init_peripheralname_structure(2,"soc_per_2");

declare_socname_peripheralname_function(3);

struct peripheralname_device peripheralname_3 =

init_peripheralname_structure(3,"soc_per_3");

declare_socname_peripheralname_function(4);

struct peripheralname_device peripheralname_4 =

init_peripheralname_structure(4,"soc_per_4");

int main(void)

C語言深入學習一

之前學過c語言不過比較淺顯,好多功能都不知道為什麼是這麼得到的,機緣巧合之下,找到了關於c語言深入學習的資源。很是開心。今天就分享給大家。希望大家能有所收穫。c語言中的資料型別 主要分為整形,浮點型,字元型。其對應為int等,float等,char等。typedef 是給某種功能另外叫乙個名字。可以...

C語言深入學習之指標

一 指標是什麼?c語言裡,變數都是存放在記憶體裡,而記憶體其實就是一組有序位元組組成的陣列,每個位元組都有唯一的記憶體位址。cpu 通過記憶體定址對儲存在記憶體中的某個指定資料物件的位址進行定位。這裡,資料物件是指儲存在記憶體中的乙個指定資料型別的數值或字串,它們都有乙個自己的位址,而指標便是儲存這...

C語言 陣列的深入學習

深入學習一下陣列 單元是依次相連線的。而且這多個變數必須單獨訪問,不可以一起訪問的。因為他們的位址彼此相連,所以使用指標 訪問這些變數就很容易了。這個位址在編譯器中決定具體數值,具體數值和變數名繫結,變數型別決定了這個位址的延續長度。3 陣列中幾個關鍵符號 a a 0 a a 0 的理解 1 a就是...