作者malkhut (WLOG)
看板MacDev
标题Re: [问题] 不同compiler的type问题...
时间Sun Mar 8 09:10:51 2009
※ 引述《moonjustin (快点放长假吧@@)》之铭言:
: 请问一下,
: 如果今天使用VC++存了一些int,float,char到档案里,(windows)
: 然後我用xcode读出来(mac os)
: 会不会有数字错掉的问题?
: 手边没有mac没办法试XD
: 谢谢。
请问你「存」的方法是什麽呢?类似fwrite(fp, &someIntVar, sizeof(someIntVar) )
这样?
除了endian问题,
还要小心某些型别如bool是compiler-dependent型别。
另外,如果你是存struct,依照compiler与机器,栏位之间会有padding,
要记得下pragma去设定你要的alignment。
一般说来,要交换资料,就算再同一个平台上面,
都应该要用有规范的格式。
如果不想自己设计规范,而且不介意明文的资料格式,
XML, JSON, YAML在两个作业系统上应该都有好用的library。
windows上MSXML还不算太难用。
如果要写的资料量非常大,担心XML太不精简,
那可以直接用sqlite3/berkley db这类可携带db档的简单database library,
好用又方便。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.57.133.149
1F:推 moonjustin:目前是打算用fwrite去存int,float资料,然後希望能在 03/08 15:17
2F:→ moonjustin:windows and mac 都能读进来 03/08 15:18
3F:→ adrianshum:或者先变成特定byte order 吧, 例如利用 htons/htonl 03/09 12:18
4F:→ malkhut:如果endian考虑好,写到binary stream应该不会有问题... 03/10 23:29