幾年之前,看到關於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的結束。所以__start和stop應該是編譯器自動生成的變數。自己在**這個問題的時候,動手寫了定義,但沒有在**中引用,然後查符號表發現還是沒有start和stop,應該是編譯器自動優化的結果。
由於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 使用離型劑時,首先要...
使用方法 卡丁車輪胎使用方法
輪胎的使用方法很重要 卡丁車輪胎是卡丁車場日常執行中的主要易損件,但是輪胎的使用方法很重要。哪些情況下會縮短輪胎的使用壽命呢?一 跑道地面粗糙 有的跑道在鋪瀝青時,或者選錯了瀝青中石子的規格,或者碾壓得不夠平整,導致路面粗糙。有的跑道使用現成的水泥地,但表面粗糙或不平整。有的室內跑道,為了提高輪胎的...