结构体typedef struct {int a;float b;char c;float AI[16];}SHAREDMEMORY, *pSHAREDMEMORY; pSHA REDMEMORY pSHM;当不使用共享内存时,怎样在只修改结构体的定义而不影响函数整体功能
时间: 2023-12-10 09:40:46 浏览: 125
Keil MDK-ARM各种数据类型占用的字节数 char short int float double
5星 · 资源好评率100%
如果不使用共享内存,可以将结构体定义放在函数内部或者在函数外部定义一个全局的结构体变量。这样,修改结构体定义不会影响函数整体功能。例如:
```
// 函数内部定义结构体
void func() {
typedef struct {int a; float b; char c; float AI[16];} SHAREDMEMORY;
SHAREDMEMORY shm;
// ...
}
// 全局定义结构体变量
typedef struct {int a; float b; char c; float AI[16];} SHAREDMEMORY;
SHAREDMEMORY shm;
void func() {
// ...
}
```
这样做的缺点是,如果需要在多个函数中使用同一个结构体,就需要在每个函数中都重新定义一次,或者将结构体定义成全局的,这样容易引起命名冲突等问题。因此,使用共享内存可以更方便地在多个函数之间共享结构体。
阅读全文