Chinaunix首页 | 论坛 | 博客
  • 博客访问: 578804
  • 博文数量: 79
  • 博客积分: 2513
  • 博客等级: 少校
  • 技术积分: 806
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-04 18:46
文章分类

全部博文(79)

文章存档

2014年(1)

2010年(5)

2009年(8)

2008年(11)

2007年(41)

2006年(13)

我的朋友

分类: C/C++

2010-04-27 16:42:00

因为性能上的洁癖,习惯于使用

in_addr ip = {info.ip};

来代替

in_addr ip;
ip.S_un.S_addr = info.ip;

表面上看,两者相差应该不大,但实际上,第一个是错的。

第一种方式其实是给 in_addr 的第一个成员赋值,而其实 in_addr 的第一个成员是 byte 而不是 unsigned long。结果就是只有一个 byte 被设置了,其他的 byte 被设置了 0。比如 127.0.0.1 显示出来是 127.0.0.0,这个恰恰又把问题变成了只有一个 byte 没有设置的问题。纠结。

看来此种方式还是要少用。
阅读(1382) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~