提前谢谢你的帮助。
尝试使用相当大的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中定义。

10-08 04:07