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

C++ C++;typeid(x).name()返回ph,c++,pointers,types,C++,Pointers,Types,Ph是什么数据类型?我知道我是int,s是短的,l是长的,等等。。。但这是什么意思 对象的数据类型是uint\u 8*它是一个损坏的类型字符串。如果您想要更具可读性的内容,则需要将其传递给demangler,如(如果您使用的是gcc)c++filt(如果是进程外的)或abi::\uuuucxa\uDemangle()(如果是代码中的): #include <cxxabi.h> #include <iostream> int main() { char * nam

Ph是什么数据类型?我知道我是int,s是短的,l是长的,等等。。。但这是什么意思


对象的数据类型是
uint\u 8*

它是一个损坏的类型字符串。如果您想要更具可读性的内容,则需要将其传递给demangler,如(如果您使用的是gcc)
c++filt
(如果是进程外的)或
abi::\uuuucxa\uDemangle()
(如果是代码中的):

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

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

这是正确的

可能
p
表示指针,
h
可能表示
无符号字符
。可能是匈牙利语表示指向半个单词的指针。
unsigned char*