先記錄下php原始碼中常見到的一些巨集,以備以後檢視需要
zend/zend_globals_macros.h:
# define cg(v) tsrmg(compiler_globals_id, zend_compiler_globals *, v)
zend/zend_globals_macros.h:
# define eg(v) tsrmg(executor_globals_id, zend_executor_globals *, v)
main/php_globals.h:
# define pg(v) tsrmg(core_globals_id, php_core_globals *, v)
main/sapi.h:
# define sg(v) tsrmg(sapi_globals_id, sapi_globals_struct *, v)
sg巨集主要用於獲取sapi層範圍內的全域性變數
其中pg是乙個巨集,定義在php_globals.h中:
# define pg(v) tsrmg(core_globals_id, php_core_globals *, v)
而tsrmg
也是乙個巨集,定義在tsrm.h中:
#define tsrmg(id, type, element) (((type) (*((void ***) tsrm_ls))[tsrm_unshuffle_rsrc_id(id)])->element)
而tsrm_unshuffle_rsrc_id
也是乙個巨集,也定義在tsrm.h中:
#define tsrm_unshuffle_rsrc_id(rsrc_id) ((rsrc_id)-1)
PHP擴充套件開發常用巨集介紹
name 函式名 arg info 函式引數定義資訊 example const zend function entry xml functions 最常用的就是下面三個,定義在zend api.h當中.zend begin arg info ex name 鍵名,規範命名都是函式名 arginfo...
常用的巨集符號
1 解釋 連線下一行 例子 define link tokenname aa bb tokenname 呼叫 a link b 輸出 a aa bb b 2 tokenname 解釋 將tokenname變為字元 tokenname 例子 define makechar tokenname toke...
常用的巨集定義
比較兩個數的大小 define max a,b a b?a b define min a,b ab?a c?a c b c?b c define min a,b,c a附 c語言巨集定義 define max a,b a b?a b 有什麼隱患?或者說 define max a,b a b a b ...