<bdo id='A2oCs'></bdo><ul id='A2oCs'></ul>

      <legend id='A2oCs'><style id='A2oCs'><dir id='A2oCs'><q id='A2oCs'></q></dir></style></legend>
    1. <tfoot id='A2oCs'></tfoot>

      <small id='A2oCs'></small><noframes id='A2oCs'>

    2. <i id='A2oCs'><tr id='A2oCs'><dt id='A2oCs'><q id='A2oCs'><span id='A2oCs'><b id='A2oCs'><form id='A2oCs'><ins id='A2oCs'></ins><ul id='A2oCs'></ul><sub id='A2oCs'></sub></form><legend id='A2oCs'></legend><bdo id='A2oCs'><pre id='A2oCs'><center id='A2oCs'></center></pre></bdo></b><th id='A2oCs'></th></span></q></dt></tr></i><div id='A2oCs'><tfoot id='A2oCs'></tfoot><dl id='A2oCs'><fieldset id='A2oCs'></fieldset></dl></div>

      1. sizeof(struct) 返回意外值

        时间:2023-07-01

        • <bdo id='WdcAO'></bdo><ul id='WdcAO'></ul>
          <i id='WdcAO'><tr id='WdcAO'><dt id='WdcAO'><q id='WdcAO'><span id='WdcAO'><b id='WdcAO'><form id='WdcAO'><ins id='WdcAO'></ins><ul id='WdcAO'></ul><sub id='WdcAO'></sub></form><legend id='WdcAO'></legend><bdo id='WdcAO'><pre id='WdcAO'><center id='WdcAO'></center></pre></bdo></b><th id='WdcAO'></th></span></q></dt></tr></i><div id='WdcAO'><tfoot id='WdcAO'></tfoot><dl id='WdcAO'><fieldset id='WdcAO'></fieldset></dl></div>
            <tbody id='WdcAO'></tbody>
          <legend id='WdcAO'><style id='WdcAO'><dir id='WdcAO'><q id='WdcAO'></q></dir></style></legend>
        • <small id='WdcAO'></small><noframes id='WdcAO'>

          • <tfoot id='WdcAO'></tfoot>

                  本文介绍了sizeof(struct) 返回意外值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  这应该很简单,但我不知道去哪里寻找问题:

                  This should be simple but I have no clue where to look for the issue:

                  我有一个结构:

                  struct region
                  {
                  public:
                      long long int x;
                      long long int y;
                      long long int width;
                      long long int height;
                      unsigned char scale;
                  };
                  

                  当我做 sizeof(region) 时,它给了我 40 当我期待 33 时.

                  When I do sizeof(region) it gives me 40 when I am expecting 33.

                  有什么想法吗?

                  (mingw gcc,赢得 x64 操作系统)

                  (mingw gcc, win x64 os)

                  推荐答案

                  它正在填充结构以适应 8 字节的边界.所以它实际上在内存中占用了 40 个字节 - sizeof 返回了正确的值.

                  It's padding the struct to fit an 8-byte boundary. So it actually is taking 40 bytes in memory - sizeof is returning the correct value.

                  如果您希望它只占用 33 个字节,则指定 packed 属性:

                  If you want it to only take 33 bytes then specify the packed attribute:

                  struct region
                  {
                  public:
                      long long int x;
                      long long int y;
                      long long int width;
                      long long int height;
                      unsigned char scale;
                  } __attribute__ ((packed));
                  

                  这篇关于sizeof(struct) 返回意外值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:扩展填充结构时,为什么不能在尾部填充中放置额外的字段? 下一篇:使用具有两个字段和一对字段的结构有什么区别?

                  相关文章

                    <bdo id='DgJPU'></bdo><ul id='DgJPU'></ul>

                  <small id='DgJPU'></small><noframes id='DgJPU'>

                  <tfoot id='DgJPU'></tfoot>

                  <legend id='DgJPU'><style id='DgJPU'><dir id='DgJPU'><q id='DgJPU'></q></dir></style></legend>
                  <i id='DgJPU'><tr id='DgJPU'><dt id='DgJPU'><q id='DgJPU'><span id='DgJPU'><b id='DgJPU'><form id='DgJPU'><ins id='DgJPU'></ins><ul id='DgJPU'></ul><sub id='DgJPU'></sub></form><legend id='DgJPU'></legend><bdo id='DgJPU'><pre id='DgJPU'><center id='DgJPU'></center></pre></bdo></b><th id='DgJPU'></th></span></q></dt></tr></i><div id='DgJPU'><tfoot id='DgJPU'></tfoot><dl id='DgJPU'><fieldset id='DgJPU'></fieldset></dl></div>