uint8_t 输出问题

C++语言 码拜 9年前 (2016-04-22) 1157次浏览
#include <iostream>
#include <stdint.h>
using namespace std;
struct A {
uint8_t a;
uint16_t b;
uint8_t c;
};
int main()
{
uint8_t arr[4] = { 16,2,2, 20 };
A* ptr = (A*)arr;
A x = *ptr;
cout << (int) x.a << endl;
cout << (int)x.b << endl;
cout << (int)x.c << endl;
}
vs下输出是
16
5122
204
unix下输出是
16
5122
255
本人的问题是输出为什么不是
16
514 (2 × 256 +2)
20
还有本人不清楚怎么得到的5122
谢谢
解决方案

20

试试sizeof(A), 可以搜索”成员变量对齐”

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明uint8_t 输出问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)