【发布时间】:2013-07-12 15:34:34
【问题描述】:
考虑以下代码:
extern "C" {
#include <lib.h>
}
#include <iostream>
int main() {
unsigned char a='a';
unsigned char b=some_struct_in_libh->unsignedchar;
cout << a << " " << b << endl; //Prints only a
printf("%u\n",b); //Prints b
cout << static_cast<int>(b) << endl; //Also prints b
return 0;
}
为什么会这样?
【问题讨论】:
-
由于我们不知道
some_struct_in_libh和unsignedchar是什么以及它们的所有值,我们只能猜测它打印了一些东西,但你看不到它。 -
b 打印成什么?它是一个有效的字符吗?您希望它被视为一个字符(一个字符的字符串)还是一个数字?
标签: c++ c solaris extern sunstudio