1. 程式人生 > >C++ #define #if #ifndef 巨集指令

C++ #define #if #ifndef 巨集指令

不會用就直接複製貼上

#define CURSOR(top,bottom) (((top)<<8)|(bottom))
#define mul(x1,x2) (x1*x2)
#define WIDTH 8
#define LENGTH (WIDTH+10)

/**
 * 
 * check is c++ compiler
 */
#if !defined(__cplusplus)
    #error c++ compiler requires
#endif

#if defined(CLANG)//if defined CLANG use below code
void compiler() { std::cout<<"use clang"<<std::endl; } #elif defined(GUNC) void compiler() { std::cout<<"use gunc++"<<std::endl; } #else void compiler() { std::cout<<"unknown compiler"<<std::endl; }
#endif #define DLEVEL 5 #if DLEVEL > 5 #define SIGNAL 1 #if STACKUSE == 1 #define STACK 200 #else #define STACK 100 #endif #else #define SIGNAL 0 #if STACKUSE == 1 #define LEVEL 1 #define STACK 100 #else #define STACK 50 #endif
#endif #if LEVEL == 0 #define STACK 0 #elif DELEVEL == 1 #define STACK 100 #elif DLEVEL > 5 display(debugptr); #else #define STACK 200 #endif /* EXAMPLE.H - Example header file*/ #if !defined(EXAMPLE_H) #define EXAMPLE_H class Example { }; #endif /** * *Visual Studio 2017 version 15.3 and later,檢查庫標頭檔案是否包含 */ # #ifdef _has_include # if _has_include(<filesystem>) # inculde <filesystem> # define have_filesystem 1 # elif _has_include(<experimental/filesystem>) # include <experimental/filesystem> # define have_filesystem 1 # define experimental_filesystem # else # define have_filesystem 0 # endif #endif #ifndef test #define final #endif //has no effect # //stringizing 操作符轉換巨集指令引數成字串字面量. //比如下面這句 "This: \" prints an escaped double quote" #define stringer(x) printf(#x "\n") #define F int #define B def #define FB(arg) #arg #define FB1(arg) FB(arg)