zend擴充套件關於模組初始化的體會

2021-10-01 21:51:14 字數 858 閱讀 6684

zend開發如何獲取模組

我其實在思考乙個問題,我在寫擴充套件的時候每次要給某某model寫 php_minit_function,今天又在思考乙個問題 其實只要php核心拿到module名字然後用乙個巨集定義,就可以獲取到對應模組的結構體

#define zend_get_module(name) \

begin_extern_c()\

zend_dlexport zend_module_entry *get_module(void) \

end_extern_c()

還有就是我們在寫擴充套件的時候

zend_module_entry libpcap_module_entry = ;
要寫php_minit(libpcap)和宣告

php_minit_function(libpcap)
其實完全可以理解為同乙個東西 乙個是放入結構體的位址,乙個是宣告,我們看一下它的實現吧

#define php_minit_function      zend_module_startup_d

#define zend_module_startup_d(module) int zend_module_startup_n(module)(init_func_args)

這是乙個宣告我們再看一下

#define php_minit       zend_module_startup_n

#define zend_module_startup_n(module) zm_startup_##module

結構體初始化 指定初始化

參考 c99支援結構的指定初始化專案,其語法與陣列的指定初始化專案近似。只是,結構的指定初始化專案使用點運算子和成員名 而不是方括號和索引值 來標識具體的元素。例如,只初始化book結構的成員value,可以這樣做 struct book surprise 可以按照任意的順序使用指定初始化專案 st...

初始化 關於tensorflow的初始化

在寫mnist手寫體識別任務 已放github 時遇到的 問題 我們都知道在session run的時候需要初始化。但是初始化在什麼位置是至關重要的。來看下這段 sess tf.session sess.run tf.global variables initializer mnist model ...

結構體初始化

結構體變數初始化 tag 結構體,結構體變數,結構體變數宣告,結構體變數初始化,結構體變數引用,結構體成員變數引用 text c語言中引用變數的基本原則是在使用變數前,需要對變數進行定義並初始化。其方法是在定義變數的同時給其一初始值。結構體變數的初始化,遵循相同的規律。簡單變數的初始化形式如下 資料...