C语言中的匿名结构体

Posted 车子 chezi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中的匿名结构体相关的知识,希望对你有一定的参考价值。

在 C 的 C11 标准中,添加了匿名结构和匿名联合。
匿名联合/结构也称为未命名联合/结构,由于没有名称,因此不会创建它们的直接对象(或变量),通常我们在嵌套结构或联合中使用它们。

An anonymous struct declaration is a declaration that declares neither a tag for the struct, nor an object or typedef name. Anonymous structs are not allowed in C++.

举例:

// C Program to demonstrate working of anonymous struct
#include <stdio.h>  
struct scope

	// Anonymous structure
	struct 
	
		char alpha;
		int num;
	;
;

int main(void)

	struct scope x;
	x.num = 65;
	x.alpha = 'B';

	// Note that members of structure are accessed directly
	printf("x.alpha = %c, x.num = %d\\n", x.alpha, x.num);

	return 0;


参考资料
【1】https://www.geeksforgeeks.org/g-fact-38-anonymous-union-and-structure/
【2】https://docs.oracle.com/cd/E19205-01/819-5267/bkael/index.html

以上是关于C语言中的匿名结构体的主要内容,如果未能解决你的问题,请参考以下文章

C语言 匿名联合体和匿名结构体

c语言自定义类型——结构体,位段(匿名结构体,结构体的自引用,结构体的内存对齐)

golang中级进阶(二):结构体

Go 语言之 struct 结构体

golang 匿名结构体怎么append?

C语言自定义类型重难点总结(结构体位段枚举联合)