提前谢谢你的帮助。
尝试使用相当大的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 world风格的程序来测试这个)。要么我根本不理解typedef,要么上面的函数一定有问题。typedef不就是告诉编译器你给一个类型起了一个不同的名字吗?
最佳答案
int64_t
是标准类型,在stdint.h
中定义。你可以这样打印:
printf("%" PRId64 "\n", someVar);
宏
PRId64
及其亲属在inttypes.h
中定义。