section使用方法

2021-08-22 11:24:57 字數 925 閱讀 8805

幾年之前,看到關於section的使用百思不得其解,最近又重新**了。

形如:

struct a

;aattribute((used, section(「test」))) a;

aattribute((used, section(「test」))) b;

extern 「c」attribute((visibility(「hidden」)))

a __start__test;

extern 「c」attribute((visibility(「hidden」)))

a __stop__test;

a* pstart = &__start__test;

while(pstart != &__end__test)

第乙個問題: __start__test和__stop__test 在什麼地方定義?

通過objdump -t 檢視符號表,的確有對應符號名,start__test位址和 a的位址是一致的,__stop__test指向test section的結束。所以__startstop應該是編譯器自動生成的變數。自己在**這個問題的時候,動手寫了定義,但沒有在**中引用,然後查符號表發現還是沒有startstop,應該是編譯器自動優化的結果。

由於end指向的是section的結束為止,所以可以使用std::sort()等使用迭代器的地方前閉後開。

第二個問題:為什麼需要在**中指定section,它的好處有啥,出於什麼目的?

目的之一如

所說可以非常方便註冊然後遍歷

pythonpip使用方法 pip使用方法整理

匯出專案已安裝的pip包 pip list 檢視專案中安裝的包 pip freeze requirements.txt 將專案中所用到的第三方庫輸出到requirements.txt中 pip install 版本號 pip install i 本次使用清華源進行安裝 離線安裝第三方庫 一鍵安裝整個...

使用方法 離型劑使用方法

1 使用離型劑前必須確保模具乾淨,無粉塵 蠟垢 樹脂垢 油汙等殘留物質。可以使用專用的模具潔模劑進行清洗,不可用其他液體清洗,以免清洗不乾淨或損壞模具。另外,如果您的模具是新的,在清洗乾淨後,務必要對模具進行初步處理,用離型劑在模具表面噴 刷塗5 6次,之後方可正常投入生產。2 使用離型劑時,首先要...

使用方法 卡丁車輪胎使用方法

輪胎的使用方法很重要 卡丁車輪胎是卡丁車場日常執行中的主要易損件,但是輪胎的使用方法很重要。哪些情況下會縮短輪胎的使用壽命呢?一 跑道地面粗糙 有的跑道在鋪瀝青時,或者選錯了瀝青中石子的規格,或者碾壓得不夠平整,導致路面粗糙。有的跑道使用現成的水泥地,但表面粗糙或不平整。有的室內跑道,為了提高輪胎的...