变长结构体的临时笔记

1. 利用1数组

struct ValLen1
{
  int a;
  char valLen[1];
};

缺点:没有数据时浪费1个空间。

2. 利用0数组

struct ValLen2
{
  int a;
  char valLen[0];
};

缺点:gcc扩展,非通用。

3. 利用空数组

struct ValLen3
{
  int a;
  char valLen[];
};

缺点:未发现。

4.利用函数

class ValLen4
{
public:
  int a;
  void* valLen(){return (void*)(this+1);}
};

缺点:相对麻烦。



posted on 2011-11-04 15:10  Qwertycen  阅读(141)  评论(0编辑  收藏  举报

导航