gpt4 book ai didi

c++ - 有什么理由在 dll 中定义类型吗?就像#define MODULE_NAME_INT8 __int8

转载 作者:行者123 更新时间:2023-11-30 03:52:22 24 4
gpt4 key购买 nike

所以我在工作中浏览了一些代码,虽然我不是 C++ 专家,但我认为可以肯定地说代码有点乱。我还是想确认一些事情。在代码中,每种类型的定义如下:

#define MODULE_NAME_INT8 __int8

无符号、16、32 和 64 位以及 bool、null、true 和 false 相同。这可能有什么原因吗?它在一个 dll 中,应用程序的其他部分是用 C# 编写的,所以也许有一些我没有想到的东西?

对我来说,这真的是一种完全的浪费和对 define 的误用。我的意思是类型名称在定义中,它基本上只是重命名类型,为什么要把代码弄成这样?我是对的还是我错过了什么?

最佳答案

我认为这些定义是有道理的。如果这段代码有点旧,MSVC 2008 及之前没有 stdint.h 和 cstdint。因此标准类型 int8_t 无法使用,程序员决定将 Windows 特定的 __int8 隐藏在定义后面,如果必须将代码移植到另一个平台(或只是一个不同的编译器)

关于c++ - 有什么理由在 dll 中定义类型吗?就像#define MODULE_NAME_INT8 __int8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30726723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com