``` typedef struct { uint16_t m; uint16_t n; } Gridcell;```这样写和 struct Gridcell { uint16_t m; uint16_t n; } 有什么区别
时间: 2024-10-21 21:04:31 浏览: 27
typedef struct 用法详解和用法小结
5星 · 资源好评率100%
在C语言中,`typedef struct`和`struct`这两种方式定义结构体的区别主要在于使用上的便利性。
使用`struct`关键字定义的结构体类型需要在使用该类型时再次使用`struct`关键字。例如:
```c
struct Gridcell {
uint16_t m;
uint16_t n;
};
// 声明变量时需要使用struct关键字
struct Gridcell cell;
```
而使用`typedef struct`的方式可以在定义结构体的同时为它定义一个新的类型名,这样就可以在后续的代码中直接使用这个新的名字而无需再写`struct`关键字。例如:
```c
typedef struct {
uint16_t m;
uint16_t n;
} Gridcell;
// 声明变量时可以直接使用新的类型名
Gridcell cell;
```
总结一下,这两种方式的主要区别在于:
- `struct`关键字定义的结构体在使用时必须始终带上`struct`关键字。
- `typedef struct`定义的结构体可以通过新的类型名直接使用,从而简化了代码书写。
阅读全文