repr(packed) itself does not guarantee that the struct fields would maintain their orders after compilation, therefore repr(C) is still needed.