C ++检查是不是定义了typedef [重复]

Posted

技术标签:

【中文标题】C ++检查是不是定义了typedef [重复]【英文标题】:C++ check if typedef if defined [duplicate]C ++检查是否定义了typedef [重复] 【发布时间】:2014-11-14 22:46:09 【问题描述】:

我正在将一个项目链接到一个库。根据库的版本,一些 API 和 typedef 是不同的。

没有办法提取库版本。我想在编译时确定这个库的版本并定义一个相应的预处理器变量。

更准确地说,我想要以下内容

#ifdef size_type
#define LIBRARY_VERSION 1.0
#else
#define LIBRARY_VERSION 2.0
#endif

问题在于 size_type 不是宏,而是使用 typedef 定义的类型。 我该怎么做?

【问题讨论】:

如果变量你希望 size_type 是什么类型的? 【参考方案1】:

在定义 typedef 的位置使用附带的宏。

typedef size_t size_type ;
#define size_type_defined

#ifdef size_type_defined
#define LIBRARY_VERSION 1.0
#else
...

你需要多写一行,但只需要写一次。

【讨论】:

typedef 是在库内部定义的,我无法修改库代码。因此,我需要项目中的所有检查代码。 @MarcoAgnese Lib 必须(应该)定义一些宏来说明它是什么版本。使用它。

以上是关于C ++检查是不是定义了typedef [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C漏洞[重复]

c语言define用法是啥

[技术]为什么单片机C语言编程时某一变量有时被随意修改

目标c检查蓝牙可用性是不是已更改[重复]

C++--模板的概念和意义深入理解函数模板类模板的概念和意义

keil里有重复定义的错误,该怎么办?而且片子的所有口都是这样