如何解决c++中的类型定义重定义

How to solve typedef redefinition in C++?

本文关键字:定义 类型 c++ 何解决 解决      更新时间:2023-10-16

我导入了一些代码到我的项目中,但是有一行:typedef signed char byte;

但是byte已经在rpcndr.h中定义了类型。有许多代码使用这种类型,所以只是更改名称是一件困难的事情。我想知道是否有一个简单的方法来解决这种重新定义?

注:我的代码在Windows上运行,所有代码都没有名称空间,所以添加名称空间等于更改类型名称。

尝试在include之前添加:#define WIN32_LEAN_AND_MEAN。

#defining WIN32_LEAN_AND_MEAN究竟排除了什么?

可以在名称空间中包装类型定义。

namespace Foo
{
    typedef signed char byte;
}
namespace Bar
{
    typedef signed char byte;
}

然后像Foo::byte; Bar::byte;那样使用

为什么以及如何在c++中使用名称空间?