Mic*_*ers 3 c preprocessor include
我有一个在两个平台之间选择的头文件:
#pragma once
#ifdef _WINDOWS
#define PAR_CLASS TestPar
#define PAR_INCLUDE_FILE "TestPar.h"
#else
#define PAR_CLASS Par
#define PAR_INCLUDE_FILE "Par.h"
#endif
Run Code Online (Sandbox Code Playgroud)
这样,我可以使用以下行包括头文件:
#include "ClassNames.h"
#include PAR_INCLUDE_FILE
Run Code Online (Sandbox Code Playgroud)
但是,我希望有更多的类,对于PAR_CLASS和PAR_INCLUDE_FILE,唯一的不同是“和.h我想要的是在PAR中使用PAR_CLASS #include,例如:
#include "PAR_CLASS.h"
Run Code Online (Sandbox Code Playgroud)
但这是行不通的...这可能吗?
我希望它可以在Visual Studio(2019)和Arduino IDE中使用。
您可以使用以下宏结构来实现它:
#define stringify(x) #x
#define GEN_INC_PATH(a) stringify(a.h)
#include GEN_INC_PATH(PAR_CLASS)
Run Code Online (Sandbox Code Playgroud)