[PHP] PHP源碼中的條件編譯定義

根據不一樣狀況編譯不一樣代碼、產生不一樣目標文件的機制,稱爲條件編譯
有這些預處理命令:#if、#elif、#else #endif ;#ifdef #else #endiflinux

PHP源碼:windows

#ifdef SERIALIZE_HEADERS //若是存在宏定義SERIALIZE_HEADERS
    # define VEC_FREE() smart_str_free(&vec_str) //宏定義VEC_FREE()
#else //若是不存在 # define VEC_FREE() do {} while (0) //宏定義空操做
#endif #ifdef DEBUG //若是存在宏定義DEBUG
#   define LOG_MSG printf //宏定義LOG_MSG
#else //若是不存在 # define LOG_MSG(...) //宏定義空操做
#endif

練習:spa

#if _WIN32 printf("windows系統 \n"); #elif __linux__ printf("linux系統 \n"); #else printf("其餘系統 \n"); #endif #ifdef N printf("存在宏定義N \n"); #else printf("不存在宏定義N \n"); #endif
相關文章
相關標籤/搜索