簡體   English   中英

如何在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中工作。

您可以使用以下宏結構實現它:

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

#include GEN_INC_PATH(PAR_CLASS)

為什么不在邏輯中包含#include語句? 就像是

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

並將#define移動到各自的包含文件中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM