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

  • <legend id='umtAo'><style id='umtAo'><dir id='umtAo'><q id='umtAo'></q></dir></style></legend>

        C 与 C++ 中的 struct 和 typedef

        时间:2023-07-01
          • <bdo id='xdkBf'></bdo><ul id='xdkBf'></ul>

                <tbody id='xdkBf'></tbody>
                <tfoot id='xdkBf'></tfoot>

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

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

                  <legend id='xdkBf'><style id='xdkBf'><dir id='xdkBf'><q id='xdkBf'></q></dir></style></legend>
                • 本文介绍了C 与 C++ 中的 struct 和 typedef的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我目前正在使用 C++ IDE 来处理需要在 C 上工作的东西,并希望确保我以后不会遇到这个问题.制作以下结构后:

                  I am currently using a C++ IDE for something that will need to work on C, and wanted to make sure that I won't have problems with this later on. After making the struct below:

                  typedef struct test {
                     int a;
                     int b;
                  };
                  

                  然后我使用它创建一个实例test my_test; 然后是诸如 my_test.a = 5 之类的东西……这在我的 VStudio C++ 中运行良好.这会在以后的 gcc 上运行吗?

                  I then create an instance of it using test my_test; then stuff like my_test.a = 5, etc... and this works fine in my VStudio C++. Is this going to work on gcc later on?

                  我阅读了弹出的相关问题(我也不是第一个提出此类问题的人),但似乎没有人像我一样使用.

                  I read the related questions that popped up (I see I am not the first person with this kind of question, either) but no one seemed to use the way I did.

                  其实typedef struct {//stuff} test;和我的版本有什么区别?

                  In fact, what is the difference between typedef struct {//stuff} test; and my version?

                  推荐答案

                  两者的区别:

                  struct Name {};
                  

                  typedef struct Name {} Name;
                  

                  是不是,在C中,你需要使用:

                  Is that, in C, you need to use:

                  struct Name instance_name;
                  

                  使用前者,而使用后者您可以:

                  With the former, whereas with the latter you may do:

                  Name instance_name;
                  

                  在 C++ 中,在任何情况下都不需要重复 struct 关键字.请注意,您创建没有名称的 typedef 的示例(即 typedef struct Name{};)是非标准的 AFAIK(如果您使用关键字 typedef,则您需要提供一个别名来键入该名称).

                  In C++, it is not necessary to repeat the struct keyword in either case. Note that your example in which you create a typedef with no name (i.e. typedef struct Name{};) is non-standard AFAIK (if you use the keyword typedef, then you need to supply an alias to which to typedef that name).

                  至于最后一个变化:

                  typedef struct { /* ... */ } Name;
                  

                  上面的代码创建了一个别名为 Name 的未命名结构.您可以像使用 typedef struct Name {/* ... *

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

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

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