如何将结构与指定的大小对齐

时间:2016-02-13 17:26:15

标签: c++

我的OpenGL纹理格式标题。我希望将struct size与512对齐,以便将来添加必要的成员。我在结构#pragma pack(push, 1) #pragma pack(pop)之前和之后添加了。我的意思是像填充(?)bootloader一样对齐到512字节。

更新 我在ideone上做了一些代码。就是这样:http://ideone.com/CW0kY4

1 个答案:

答案 0 :(得分:1)

您可以在结构中添加一个名为“Reserved”的成员,这是一个字节数组。这使得总大小为512字节:

    User user = null;
    final Bundle args = getIntent().getExtras();
    if(args.getSerializable("user") instanceof User){
        user = (User)args.getSerializable("user");
    }
    if(user != null){
        Fragment secondActivityFragment = SecondActivityFragment.newInstance(user);
        FragmentMenager fragmentMenager = getFragmentMenager();
        FragmentTransaction fragmentTransaction = fragmentMenager.beginTransaction();
        fragmentTransaction.replace(R.id.frame_for_your_fragment, secondActivityFragment);
    }

或者,您可以使用嵌套的结构,该结构在编译时自动计算数据的大小:

typedef struct
{
    uint8_t Member1;
    uint8_t Member2;

    uint8_t Reserved[510]; // Reserved data for future use which is the remainder
} Data;