- 論壇徽章:
- 0
|
本帖最后由 newbuding 于 2010-06-10 15:41 編輯
有3個結(jié)構(gòu)體,中有小部分成員相同
結(jié)構(gòu)體a與結(jié)構(gòu)體b為實類,結(jié)構(gòu)體c為共同類,可以替代a或b。
當然結(jié)構(gòu)體a和b不會像下面這么簡單。- struct a {
- int type;
- int count;
- };
- struct b {
- int type;
- int count;
- };
- struct c {
- int type;
- char data[max(sizeof(struct a),sizeof(struct b))-sizeof(int)];
- };
復制代碼 能否實現(xiàn)宏ZZ(),或者函數(shù)ZZ()
- struct a test_a = { 1, 100};
- struct b test_b = { 2, 200};
- struct c test_c = (struct a)test_a;
- printf("%d\n", ZZ(test_c).count++);
復制代碼 可以實現(xiàn):根據(jù)type的不同,處理成不同的結(jié)構(gòu)體。 |
|