提前感谢您的帮助。 试图使用相当大的C / Cpp(是的,我知道)库并遇到错误。不幸的是,我回来的错误非常模糊,但我确实知道导致它的变量。我想做的只是将此变量打印到stdout,以便我可以看到发生了什么。但是,此变量不是标准类型。它的类型为
Opt_Int64 someVar = 10;
,其中
typedef int64_t VosT_int64;
typedef VosT_Int64 OpT_Int64;
对于我的生活,我无法弄清楚如何将此Opt_Int64类型转换为char数组,以便我可以将其打印出来。我会假设以下函数会为我做这个
void int64ToChar(char mesg[], Opt_Int64 num) {
for(int i = 0; i < 8; i++) mesg[i] = num >> (8-1-i)*8;
}
但它似乎不起作用(我构建了一个非常简单的hello世界风格程序来测试它)。要么我根本不理解typedef,要么我应该或者上面的函数一定有问题。不是typedef只是告诉编译器你给类型一个不同的名字吗?
答案 0 :(得分:3)
int64_t
是一种标准类型,在stdint.h
中定义。你可以像这样打印:
printf("%" PRId64 "\n", someVar);
宏PRId64
及其亲属在inttypes.h
中定义。