簡體   English   中英

C中的sizeof移植到Java

[英]Sizeof in c porting to Java

我在C中有這樣的代碼

skip=(unsigned long) (st_row-1)*tot_numcols;
fseek(infile,sizeof(cnum)*skip,0);

現在我必須將其移植到Java中。我該怎么做。“ cnum”是C語言中的一種結構,因此我在Java中創建了一個類。

您的C設計已損壞,您無法執行Java顯然想要做的事情。

看來您是通過盲目地將指針轉儲到磁盤來將信息存儲在C結構之外。 除了難以調試之外,它還容易被任何使編譯器決定以不同方式打包結構的更改完全破壞,特別是針對32位和64位或低端和大端目標編譯相同的代碼。 相反,您應該始終顯式序列化結構化數據。 除非存在大量數據,否則人類可讀格式是最好的。

Java根本不允許這種嘗試。 Java內存模型顯式地隱藏了有關運行時內存打包的信息,並且JVM擁有廣泛的自由來組織內存管理。

而是定義一個清晰的格式來保存數據(包括字節序),並在兩種語言中都使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM