C语言中结构体标签tag与结构体数据类型的使用
2017-04-02 22:53
1446 查看
C语言中的数据结构实现很多时候会用到结构体功能,而反复定义结构体有几种不同的方法。这里先把三种常用方法阐述一下然后针对两种简化模式的方法进行简单的示范与总结。
方法1:
#include "stdio.h"
struct {
char a;
short b;
int c;
} var1;
struct {
char a;
short b;
int c;
} var2;
int main(void)
{
return 0;
}
上述方法定义了两个结构体变量var1、与var2,两个变量的构造方式相同。但是,这种定义方式有着很大的不变,因为反复重写相同的东西。对此做一下修改,于是有定义方法2。
方法2:
#include "stdio.h"
struct {
char a;
short b;
int c;
} var1,var2;
int main(void)
{
return 0;
}
这种方式少写了一次结构体,同时还能够实现两个变量的定义。不过,如果定义的结构体变量过多的时候代码就会有可读性以及维护性上的问题。对此改进有两种可选方式,也就是方法3-结构体tag以及方法4-结构体数据类型。
方法3:
#include "stdio.h"
struct demo_tag {
char a;
short b;
int c;
} var1;
struct demo_tag var2;
int main(void)
{
return 0;
}
上述代码同样实现了两个结构体变量的定义,但是第二种方式采用了结构体的tag用以代替了结构体的描述。这种定义方式每次需要些struct关键字,因为tag只是代表了结构体的描述信息。不过,如果出现大量的变量定义需要时,这种方式显然要比第二种方式好得多。
方法4:
#include "stdio.h"
typedef struct demo_tag {
char a;
short b;
int c;
} demo_t;
demo_t var1,var2;
int main(void)
{
return 0;
}
代码中的结构体tag其实是没有用了的,可以去掉。我个人感觉,这种方法是最好的一种使用方式。只需要构造一个结构体数据类型,接下来的结构体对象构建起来就简单很多了。而且,当出现大量的结构体数据时,代码需要维护的时候工作量也会小很多。不仅仅在于代码的字符会看着少一些,同时这种方式也比较适合最基本的C语言定义规则。当然,这得建立在你对这种技术有一定的熟知的基础上。
方法1:
#include "stdio.h"
struct {
char a;
short b;
int c;
} var1;
struct {
char a;
short b;
int c;
} var2;
int main(void)
{
return 0;
}
上述方法定义了两个结构体变量var1、与var2,两个变量的构造方式相同。但是,这种定义方式有着很大的不变,因为反复重写相同的东西。对此做一下修改,于是有定义方法2。
方法2:
#include "stdio.h"
struct {
char a;
short b;
int c;
} var1,var2;
int main(void)
{
return 0;
}
这种方式少写了一次结构体,同时还能够实现两个变量的定义。不过,如果定义的结构体变量过多的时候代码就会有可读性以及维护性上的问题。对此改进有两种可选方式,也就是方法3-结构体tag以及方法4-结构体数据类型。
方法3:
#include "stdio.h"
struct demo_tag {
char a;
short b;
int c;
} var1;
struct demo_tag var2;
int main(void)
{
return 0;
}
上述代码同样实现了两个结构体变量的定义,但是第二种方式采用了结构体的tag用以代替了结构体的描述。这种定义方式每次需要些struct关键字,因为tag只是代表了结构体的描述信息。不过,如果出现大量的变量定义需要时,这种方式显然要比第二种方式好得多。
方法4:
#include "stdio.h"
typedef struct demo_tag {
char a;
short b;
int c;
} demo_t;
demo_t var1,var2;
int main(void)
{
return 0;
}
代码中的结构体tag其实是没有用了的,可以去掉。我个人感觉,这种方法是最好的一种使用方式。只需要构造一个结构体数据类型,接下来的结构体对象构建起来就简单很多了。而且,当出现大量的结构体数据时,代码需要维护的时候工作量也会小很多。不仅仅在于代码的字符会看着少一些,同时这种方式也比较适合最基本的C语言定义规则。当然,这得建立在你对这种技术有一定的熟知的基础上。
相关文章推荐
- 使用python向C语言的链接库传递数组、结构体、指针类型的数据
- 黑马程序员——c语言复杂数据类型:结构体和枚举,typedef的使用
- c语言数据类型定义和总结构体的使用
- C语言(2)数据类型、常量、Printf、sizeof、scanf的使用
- 002-IDE的使用与数据类型-C语言笔记
- c语言基本数据类型及其使用
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- 小谈C语言中常见数据类型在32及64位机上的使用
- C语言学习10:结构体,结构体应用,联合用法,枚举,fopen函数使用,fseek,ftell的作用和文件结束符EOF,数组和文件交换数据,个人信息管理。
- 小谈C语言中常见数据类型在32及64位机上的使用(zz)
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- Python使用struct模块转换C语言结构体,打包、解包二进制数据
- C语言中数据类型的使用选择
- VC下使用OpenCV最好先修改一下结构体IplImage中的数据指针imageData的类型...
- 小谈C语言中常见数据类型在32及64位机上的使用
- C语言构造数据类型之结构体、共用体、枚举
- 黑马程序员——C语言中指针与其他数据类型的结合使用
- C语言中结构体struct类型使用
- c语言中,在结构体中如何将void *转存为具体需要的数据类型
- 小谈C语言中常见数据类型在32及64位机上的使用