Hello There,

Empty Structures :- http://gcc.gnu.org/onlinedocs/gcc/Empty-Structures.html
I came across this extension and understood why empty-structures were 
introduced as an extension in gcc and g++.
But i couldn't find any relevant text as to what is considered as empty 
structure.

Eg: T2 and T4 below have size 0 and 1 in gcc and g++ respectively as they're 
considered to be empty structure.

struct T2
{}t2;

struct T4
{long int:0;}t4;


---WHEREAS---
T1, T5 and T6 below have size 0 in both gcc and g++. 

struct T1
{struct{}a[0]; }t1;

struct T5
{struct{
  struct{
   struct{long d[5];
   void * e;
   short f[7];
   }c;
  int g;
  int h:25;
  }b[0];
 }a;  }t5;

struct T6 
{
 short:0;
 struct
 {
 struct{int d;
 }c[1];
 struct __attribute__((aligned (1), packed)){}e[0];
 float f;
 }b[0];
}t6;

My question is what is the definition/grammer of empty structure. As i couldn't 
find it covered in C/Cxx standard document.
Also will the structures above T1, T5 and T6 be called empty structures ?

Please find attached, the file comprising of examples above with gcc version 
4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) 

Warm Regards,
Naveen

Attachment: test.c
Description: Binary data

Reply via email to