【发布时间】:2015-03-23 20:51:03
【问题描述】:
我正在用 c 编写一个小服务器(一个聊天服务器),我想在我的 char *data 中写入和读取一个整数(以及其他类型的变量,如 short int、unsigned int blablabla)。
我有一个结构 DataOutput :
typedef struct t_dataoutput
{
char *data;
unsigned int pos;
} DataOutput;
我有一个函数可以写一个 int :
int writeInt(DataOutput *out, int i)
{
// here i resize my char *data
out->data[out->pos] = (i >> 24);
out->data[out->pos + 1] = (i >> 16) & 0xff;
out->data[out->pos + 2] = (i >> 8) & 0xff;
out->data[out->pos + 3] = i & 0xff;
out->pos += 4;
}
在我的主要功能中,我想尝试我的代码:
int main()
{
DataOutput out;
out.writeInt(&out, 9000);
printf("%d\n", (out.data[0] << 24) | (out.data[1] << 16) | (out.data[2] << 8) | (out.data[3]));
}
但结果并不好......为什么?我不明白:(
对不起我的英语我是法国人^^!
感谢您的帮助!
【问题讨论】:
标签: c