如何在 C include 语句中使用#define?

How to use a #define inside a C include statement?

我有一个在两个平台之间进行选择的头文件:

#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

有了这个,我可以使用以下行来包含头文件:

#include "ClassNames.h" 

#include PAR_INCLUDE_FILE

但是,我期望更多 类,对于 PAR_CLASS 和 PAR_INCLUDE_FILE,唯一不同的是 " 和 .h 我想要的是在 #include 中使用 PAR_CLASS,类似于:

#include "PAR_CLASS.h"

但这行不通...这样的事情可能吗?

我希望它在 Visual Studio (2019) 和 Arduino IDE 中工作。

为什么逻辑中没有 #include 语句?像

#ifdef _WINDOWS
#include "TestPar.h"
#else
#include "Par.h" 
#endif

并将 #define 移动到各自的包含文件中

您可以使用以下宏结构来实现它:

#define stringify(x) #x
#define GEN_INC_PATH(a) stringify(a.h)

#include GEN_INC_PATH(PAR_CLASS)