有人可以向我解释为什么下面的结构大小是 16 吗?
public class StringStruct extends Structure {
public char[] data = new char[4];
public StringStruct() {}
@Override
protected List<String> getFieldOrder() {
return Collections.singletonList("data");
}
}
public class Main {
public static void main(String[] args) {
StringStruct ss = new StringStruct();
// Prints StringStruct: 16
// I was expecting 4...
System.out.println("StringStruct: " + ss.size());
}
}
我想对拥有数据的结构进行建模
typedef struct {
char data[4];
} StringStruct_s
如果我改用字节数组,它会返回预期值。尽管如此,字符数组的大小还是让我感到惊讶。该字段是否被解释为拥有编码的 String ?因此,我使用各种显式编码(-Djna.encoding="...")启动了这个可执行文件,看看它是否有效果。不用找了...
慕田峪9158850
相关分类