结构体typedef struct {int a;float b;char c;float AI[16];}SHAREDMEMORY, *pSHAREDMEMORY; pSHAREDMEMORY pSHM当不使用共享内存时,需要怎样只修改结构体的定义而不影响函数整体功能
时间: 2023-12-10 22:40:36 浏览: 64
Keil MDK-ARM各种数据类型占用的字节数 char short int float double
5星 · 资源好评率100%
如果不使用共享内存,可以将结构体定义为以下形式:
```c++
typedef struct {
int a;
float b;
char c;
float AI[16];
} DATA;
```
然后在函数中使用 `DATA` 替换 `SHAREDMEMORY`,并在需要声明共享内存的地方使用 `DATA` 声明即可。这样做的好处是,如果以后需要使用共享内存,只需要在结构体定义前添加一个 `#define` 宏定义,即可方便地切换结构体定义。例如:
```c++
#define USE_SHARED_MEMORY
#ifdef USE_SHARED_MEMORY
typedef struct {
int a;
float b;
char c;
float AI[16];
} SHAREDMEMORY, *pSHAREDMEMORY;
#else
typedef struct {
int a;
float b;
char c;
float AI[16];
} DATA;
#endif
```
然后在需要使用共享内存的地方,可以这样声明:
```c++
#ifdef USE_SHARED_MEMORY
pSHAREDMEMORY pSHM = ...;
#else
DATA data = ...;
#endif
```
这样就可以方便地切换使用共享内存或者不使用共享内存了。
阅读全文