5.7 屬性宣告

yzm65580952發表於2020-10-09

5.7 屬性宣告

主要用途

使用__attribute__來宣告變數、函式的特殊屬性
指導編譯器來進行特定方面的優化或程式碼檢查

使用方法

在宣告後面新增:_ attribute _((ATTRIBUTE))

例:int global_val _attribute_((section(“.data”)));

放到自定義的test段
int global_val _attribute_((section(“test”)));

細節問題

變數和函式不能放在同一個段

檢視section表

reabdelf -S xxx.out

Linux核心驅動中的 __init巨集

使用完之後核心又會吧init段給清了
啟動的時候會列印
Freeing unused kernel memory
start_kernel – kernel_init – free_initmem

相當於一次性的

#define __init __section(.init.text)

linux核心初始化

  1. 前面是一段彙編程式碼
  2. start_kernel

相關文章