【发布时间】:2020-04-14 08:35:17
【问题描述】:
我尝试转换为 void* 并使用 %p。我也试过intptr_t,格式为%lx。两次我都收到“无效的演员表”错误。
我正在使用-Wall -Werror,它检查printf() 的参数是否与函数的格式字符串匹配。所以我不能仅仅指望get_id() 在堆栈上留下一个 4 或 8 字节的值,然后简单地将该值打印为十六进制。
我正在使用 gcc 版本 9.2.1 20190827 (Red Hat 9.2.1-1) (GCC)
操作系统是 Fedora release 31 (31) 。 CPU 是 64 位 Intel x86。
【问题讨论】:
-
这个
std::thread::id(get_id返回的对象的类型)参考应该很有帮助。但是为什么要在 C++ 程序中使用printf?
标签: multithreading c++11