将一系列typedef转换为char数组

时间:2016-07-21 22:29:31

标签: c++ c casting

提前感谢您的帮助。 试图使用相当大的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只是告诉编译器你给类型一个不同的名字吗?

1 个答案:

答案 0 :(得分:3)

int64_t是一种标准类型,在stdint.h中定义。你可以像这样打印:

printf("%" PRId64 "\n", someVar);

PRId64及其亲属在inttypes.h中定义。