有关一个C++语言条件编译疑惑的有关问题,大家帮帮忙
有关一个C++语言条件编译疑惑的问题,大家帮帮忙
因为自己的项目源码文件头文件很多有些结构体或数据类型重定义了,所以我就用如下方式想要解决问题,但是这似乎不行
#if !DWORD64
typedef __int64 DWORD64,*PDWORD64;
#endif
如果这个条件编译之前已经有 typedef __int64 DWORD64,*PDWORD64; 那么就会产生重定义而不能编译
但是如果之前没有 typedef __int64 DWORD64,*PDWORD64; 那么后面的代码就会产生没有定义 DWORD64 而不能编译
对于我想判断一下某个 数据类型 或 数据结构 以及 枚举 或 共用体 类型在之前是否以及被定义过,这样应该如何进行条件编译。
------解决方案--------------------
把这两个struct用相同的宏定义包围上。
比如。
------解决方案--------------------
判断类型是否定义,用#ifdef, #ifndef
------解决方案--------------------
是需要用条件编译保护宏来放置头文件多次包含的。
因为自己的项目源码文件头文件很多有些结构体或数据类型重定义了,所以我就用如下方式想要解决问题,但是这似乎不行
#if !DWORD64
typedef __int64 DWORD64,*PDWORD64;
#endif
如果这个条件编译之前已经有 typedef __int64 DWORD64,*PDWORD64; 那么就会产生重定义而不能编译
但是如果之前没有 typedef __int64 DWORD64,*PDWORD64; 那么后面的代码就会产生没有定义 DWORD64 而不能编译
对于我想判断一下某个 数据类型 或 数据结构 以及 枚举 或 共用体 类型在之前是否以及被定义过,这样应该如何进行条件编译。
------解决方案--------------------
把这两个struct用相同的宏定义包围上。
比如。
#ifndef TEST1_H
#define TEST1_H
typedef struct _TTTTTT_
{
long a;
long b;
}TTTTTT,*PTTTTTT;
#endif
------解决方案--------------------
判断类型是否定义,用#ifdef, #ifndef
------解决方案--------------------
是需要用条件编译保护宏来放置头文件多次包含的。