如何解决为什么以下代码中cout和printf的输出不一致,而cout不能正确输出?
#include <iostream>
using namespace std;
#pragma pack(1) //
typedef struct {
uint8_t ID;
uint8_t CONFIG1;
} REG_MAP;
#pragma pack(0)
int main() {
REG_MAP* reg;
uint8_t arr[2] {1,2};
reg = (REG_MAP*) arr;
uint8_t temp = reg->ID;
cout << dec << reg->ID << endl;
cout << temp << endl;
if(temp == 1){
cout << "temp is 1" << endl;
}
printf("%d",reg->ID);
}
我试图将数组分配给相同大小的结构,但是发现cout
不能正确打印reg ID,但是printf()
可以正确打印,这让我感到困惑。
此外,为temp分配值后无法正确显示 enter image description here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。