[英]Why does cout not print extern “C” variable?
考慮以下代碼:
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;
}
為什么會這樣呢?
它根本不只打印a
。 您所看到的是cout
字符類型數據打印為字符而不是數字。 您的b
是某些不可打印的字符,因此cout
可以將其打印為空白。
您通過將其轉換為int找到了解決方案。
編輯:我很確定您的printf只是偶然地工作,因為您告訴它要期待一個unsigned int並給它一個字符(不同的字節數)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.