首页
社区
课程
招聘
[求助]关于C编译器的高低位设置
发表于: 2011-4-14 11:54 4289

[求助]关于C编译器的高低位设置

2011-4-14 11:54
4289
我也不知道这样的标题是否正确,我不是非常了解C,所以请见谅。

问题请看图,是关于TC(Tokyo Cabinet)的,TC的命令行产生的数据库,与PHP扩展产生的数据库不兼容,我找了好久原因,最后通过文件对比对发现,应该是文件头定义的问题。但文件头定义是一个,编译PHP扩展用的也是TC的头。所以我觉得问题出在C编译器上。把高低位弄反了。 请问Linux下C编译有这方面的设置吗?

[注意]APP应用上架合规检测服务,协助应用顺利上架!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1907
活跃值: (1926)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
2
这就是大端与小端的问题。


unsigned long Swap32(unsigned long n)
{
	return (( n&0xFF000000) >> 24) | (( n&0x000000FF) <<24) | (( n&0x00FF0000) >> 8) | (( n&0x0000FF00) << 8);
}

2011-4-14 12:27
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
一般来说,在网络上传递的数据是大端的,这是协议规定的。
而在主机上,可能为小端的,如intel。
hton host to net(short int)
ntoh net to host (short int)
htonl host to net (long int)
ntohl net to host (long int)
网络字节序跟主机字节序转换的函数,加进去试试。
2011-4-14 12:38
0
雪    币: 142
活跃值: (278)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
4
谢谢楼上两位,应该就是这个问题。

我得再去找找如果在PHP编译时设置此项。
2011-4-14 14:19
0
游客
登录 | 注册 方可回帖
返回
// // 统计代码