我知道结构是什么,如何制作一个结构以及为什么你应该键入一个...
typedef struct Foo {
int a;
char b;
float c;
} Foo;
Run Code Online (Sandbox Code Playgroud)
但我不知道它是如何工作的.模板是否保存在堆栈中并在引用元素时像查找表一样使用(类似于类的工作方式)?或者这里有另一种设计.
关于类型定义结构的部分是值得商榷的.
结构基本上是将大量数据存储在一起的便捷方式.
编译器知道哪些偏移指向哪个元素,并在需要访问元素时将它们绑定到程序中.因为结构结构在运行时不能更改,所以不需要使用查找表.
例如,我可以编写以下结构,如下所示:
char Foo[12];
*((int *) (Foo + 0)) = a;
*((char *) (Foo + 4)) = b;
*((float *)(Foo + 8)) = c;
Run Code Online (Sandbox Code Playgroud)
您可以手动查看偏移量.不需要查找表.当您使用结构时,编译器会自动执行相同的操作.