"Luiz Rafael Culik Guimaraes" <culikr@xxxxxxxxxx> writes: > Dear friends > > this code bellow > > if __GNUC__ < 3 || defined( XWT_GTK_OLD_INHERITANCE ) > # define INHERIT( x ) x inherit > # define INH( field ) inherit.field > #else > # define INHERIT( x ) x > # define INH( field ) field > #endif > typedef struct tag_xwt_widget > { > ULONG sign; > > // type is at disposal of drivers to interpret widget data correctly > int type; > > // pointer to raw widget data that is known by underlying driver > void *widget_data; > > // Destroys the underlying data. > BOOL (*destroy)( struct tag_xwt_widget *widget ); > > // Sets a given property to a (variable type of) value > BOOL (*set_property)( struct tag_xwt_widget *widget, char *prop, void* > pValue ); > > // Send a group change; pValue is a hash of properties to be changed in > one step > // useful to move, resize or reset the whole geometry. > // drivers must cache all the changes and apply them at once on the best > function > BOOL (*set_pgroup)( struct tag_xwt_widget *widget, void* pValue ); > > // retreive a single property of the underlying widget > BOOL (*get_property)( struct tag_xwt_widget *widget, char *prop, void* > pValue ); > > // creates a hash containing all the properties valid for this widget. > // properties are to be put in the PHB_ITEM pProps that is to be > provided by the caller, > // the modules will receive it ready to accept properties > BOOL (*get_all_properties)( struct tag_xwt_widget *widget, void* > pProps ); > > void hbOwner; // shell holding the owner > void* pOwner; // commodity reference to the owner object > > } XWT_WIDGET, *PXWT_WIDGET; > > typedef struct tag_xwt_gtk_base > { > GtkWidget *main_widget; > GtkWidget * (*top_widget)( PXWT_WIDGET self ); > int x; > int y; > int width; > int height; > int nId; > } XWT_GTK_BASE, *PXWT_GTK_BASE; > > > typedef struct tag_xwt_gtk_modal > { > INHERIT( XWT_GTK_BASE ); > BOOL modal; > BOOL canceled; > } XWT_GTK_MODAL, *PXWT_GTK_MODAL; > > Compile properly on gcc 3.2.2 But with pedantic gcc 3.2.2 says: xwt.c:71: warning: ISO C doesn't support unnamed structs/unions > but if i try to compile with gcc 3.3.x i got errors like > xwt_gtk.h:63: warning: declaration does not declare anything > xwt_gtk.h:71: warning: declaration does not declare anything > > Is unnamed structures not more supported on gcc 3.3.x unnamed structures are not part of ISO C. You must use '-fms-extensions' to enable them. > > how to correct the code to work with unnamed structures , or exist an > compiler switch to enable gcc 3.2 behavior > > Regards > Luiz