读书人

关于结构体中union用法的有关问题

发布时间: 2012-04-19 14:36:43 作者: rapoo

关于结构体中union用法的问题
这是书上的一段代码

C/C++ code
typedef struct CvMat {int type;int step;int* refcount; union {uchar* ptr;short* s;int* i;float* fl;double* db;} data;union {int rows;int height;};//为什么不声明变量,而且即使声明变量后会与data冲突吗union {int cols;int width;};//同样的问题} CvMat;


[解决办法]
这是 C 语法的一个特例,rows、cols 等可直接访问,不必像前面 data 那样多加一层,这样更像 Pascal 中「记录的变体」,用起来更方便些。
比如
C/C++ code
CvMat c;c.rows=100;c.data.s=xxxx; 

读书人网 >C语言

热点推荐