不同版本c++头文件引用

一、背景

        有两个不同版本的头文件,两个头文件名字一样,作用域一样,结构体名字一样,只有结构体中的部分字段不一样。

        功能需要:两个版本头文件都需要用到。

二、问题

        直接#include 头文件只能引用一个头文件

三、解决办法

        新增一个头文件

#ifndef __MY_TEST_H
#define __MY_TEST_H

namespace in1
{
#undef _TEST_H
#include "./v1/test.h"
#undef _TEST_H
}

namespace in2
{
#undef _TEST_H
#include "./v2/test.h"
#undef _TEST_H
}

#endif

这样访问不同版本结构需要增加in1或in2作用域

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++ 中,如果想要在一个源文件中使用另一个源文件中定义的函数,可以使用头文件头文件可以包含函数声明和函数定义,以便在其他源文件中使用。 当头文件中包含了其他作用域中定义的函数时,需要使用作用域解析运算符 "::" 来指定函数的作用域。例如,在头文件中包含了命名空间中的函数时,可以使用作用域解析运算符来指定函数的作用域,如下所示: ```c++ // header.h namespace ns { void func(); } // source1.cpp #include "header.h" void ns::func() { // 函数定义 } // source2.cpp #include "header.h" int main() { ns::func(); // 调用命名空间中的函数 return 0; } ``` 在上面的代码中,头文件 "header.h" 中包含了命名空间 ns 中的函数 func 的声明。在源文件 "source1.cpp" 中定义了函数 func,并使用作用域解析运算符 "::" 来指定函数的命名空间。在源文件 "source2.cpp" 中,通过包含头文件 "header.h" 来使用命名空间中的函数 func。 需要注意的是,在使用头文件时,要确保头文件中的代码只被编译一次。为了避免重复编译,可以使用预编译指令 "#ifndef" 和 "#define" 来防止头文件的重复包含,如下所示: ```c++ // header.h #ifndef HEADER_H #define HEADER_H namespace ns { void func(); } #endif ``` 在上面的代码中,使用预编译指令 "#ifndef" 和 "#define" 来防止头文件的重复包含。如果头文件已经被包含,则不会再次包含头文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值