C++ typeid(x).name() 返回 ph

标签 c++ pointers types

Ph 是什么数据类型?我知道 i 是 int,s 是 short,l 是 long,等等...但是 ph 是什么意思?

对象的数据类型为uint_8 *

最佳答案

这是一个错位类型的字符串。如果你想要更易读的东西,你需要将它传递给一个 demangler,比如(如果你使用的是 gcc)c++filt(如果进程外)或 abi::__cxa_demangle () 如果在代码中:

#include <cxxabi.h>
#include <iostream>

int main() {
    char * name = abi::__cxa_demangle("Ph", 0, 0, 0);
    std::cout << name << std::endl;
    free(name);
}

这打印:

unsigned char*

这是正确的。

关于C++ typeid(x).name() 返回 ph,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27117076/

相关文章:

c++ - 取消引用指向未知类型变量的指针

c++ - 带有指向成员函数指针的模板

C++ 指向函数的指针作为参数。数据类型不兼容

c++ - 如何正确使用vector<uint8_t>.data()?

c# - 结果是类型的交集?

c++ - typeid(equalizing) 中类型定义及其含义的区别

printing - 如何不在 Julia 中打印类型?

c++ - 使用参数包将 lambda 转换为 std::function

c++ - 为什么拥有作业并在其他线程中等待它们会导致整个应用程序等待?

c++ - 交错插入排序函数排序不正确