ARMCC中的特殊修補符號Super和Sub

2022-07-17 03:39:09 字數 993 閱讀 6215

偶然在rtthread**中發現,特殊的修補符號$super$$$sub$$,他的作用很強大,介紹一下。

如下**:

extern int $super$$main(void);

/* re-define main function */

int $sub$$main(void)

如上**中,用符號$super$$$sub$$修飾了原函式main();為原來不能修改的main()函式打了補丁,作用是在呼叫原來的main()函式前,先呼叫自己定義的$sub$$main()函式。

在符號定義無法被修改的情況下,你可以用種特殊符號$super$$$sub$$去為該符號定義打補丁。

例如,如果它位於外部庫或rom**中。 在這種情況下,您可以使用$super$$$sub$$模式來修補現有符號,修補函式的定義。

看下官方舉的例子

foo():

$super$$foo

標識原始未修補的函式foo(),用它來直接呼叫原始函式。

$sub$$foo

標識呼叫的新函式而不是原始函式foo(),使用此選項可在原始函式之前或之後新增處理。

-----note-----

$sub$$$super$$機制僅適用於靜態鏈結時,$super$$引用無法匯入或匯出到動態符號表中。

詳見參考手冊:

arm® compiler v5.06 for µvision® version 5 armlink user guide

php中的特殊符號

php中判斷是否相等用 php中的 符號 遮蔽單行錯誤。如果 之後的語句執行出錯的話,不在螢幕列印出錯誤資訊。如果不用的話錯誤資訊就會顯示出來 php中的die函式 輸出一條訊息,並退出當前指令碼。die unable to connect to site 如果 status 是字串,則該函式會在退...

bash中的特殊符號

bash中的特殊符號 批註符號,視為說明,後面的資料均不執行 轉義符號,將 特殊字元和萬用字元 還原成一般字元 管道pipe,分割2個管道命令的界定 連續命令執行的分隔符,連續性命令的界定 使用者的主資料夾 使用變數前導符 job control 作業控制,將命令變成背景下工作 邏輯運算意義上的非 ...

url中的特殊符號

最近寫http伺服器,解析請求中的url,發現有一些特殊字元 url 中 號表示空格 2b 空格 url中的空格可以用 號或者編碼 20 分隔目錄和子目錄 2f 分隔實際的 url 和引數 3f 指定特殊字元 25 表示書籤 23 url 中指定的引數間的分隔符 26 url 中指定引數的值 3d ...