c++ - 是否可以隐藏(或取消定义)typedef?

标签 c++ mfc

<分区>

为避免混淆和可能的错误,是否可以隐藏或取消定义 typedef。

我同时做很多 C++ 和 Java。在java中,boolean类型是boolean ,在 C++ 中是 bool .问题是在 Windows C++ 库的某处,有一个:typedef unsigned char boolean;这意味着,在我的 C++ 代码中,我错误地输入了 bool。输入 boolean ,它将编译并可能导致意外错误,因为它是一个无符号字符而不是真正的 bool .

那么我可以做些什么来隐藏或取消定义 C++ 中的 bool 类型定义?

最佳答案

是的,使用预编译器指令是可能的,如下例所示:

typedef int foo;
#define foo not_to_be_used

int main() {
  foo a = 1; // error: unknown type name 'not_to_be_used'
}

基本上,这种方式取消了 typedef。如果在预编译器定义下方使用 foo,上面的代码将发出错误。

Live Demo

关于c++ - 是否可以隐藏(或取消定义)typedef?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34188584/

相关文章:

C++ 引用构造函数语法

c++ - 如何在 C++ 17 中使用变量正确格式化输出字符串?

c++ - 如何在MFC中的CWnd中显示CFormView?

c++ - 应用程序连接到数据库

c - Windows CE 6远程调试。暂停程序时没有调用堆栈

c++ - CComboBox 下拉时不选择 CurSel

c++ - 指针和数据类型

c++ - Mac OS X 中 undefined reference _cblas_dgemm

c++ - 延迟 MSAA 伪造

mfc - 如何找到实际内容的 CStatic(文本)边界矩形?