我在讀代碼時,遇見c++
#ifdef LIBZEND_EXPORTS
# define ZEND_API __declspec(dllexport)
#else
# define ZEND_API __declspec(dllimport)
#endifapi
不理解__declspec是什麼東西,函數
開始時,我把它理解成關鍵字,查了下c語言關鍵字:anto break case char const(C90標準新增) continue default do double else enum(C90標準新增) extern float for goto if inline int long register restrict return short signed(C90標準新增) sizeof static struct switch typedef union unsigned void(C90標準新增) volatile(C90標準新增) while _Bool(C99新增) _Complex(C99新增) _Imaginary(C99新增) 36個關鍵字,但是沒有,c++裏63個也沒,因而baidu一下,發現都是把__declspec(dllimport)和__declspec(dllexport)當作關鍵字。rest
我便很不解,看到ZEND_API void sapi_activate(TSRMLS_D);這段代碼時,我知道了 應該是在函數聲明上,準確地稱爲預處理器,和#defined 差很少吧。it
個人理解,感受應該正確吧!
io