struct _Edje_Message_String_Set
{
int count; //On 64 bit machine, this is 8 bytes
char *str[]; //str has no "size" and is not counted in sizeof(_Edje_Message_String_Set)
};
typedef struct _Edje_Message_String_Set EdjeMessageStringSet;
####
use strict;
use warnings;
use Inline C => Config =>
BUILD_NOISY => 1,
USING => 'ParseRegExp',
;
use Inline C =><<'EOC';
typedef struct _foo
{
int count;
} foo;
typedef struct _bar
{
int count;
char *str[];
} bar;
void sizes(void) {
printf( "FOO: %d %d\n", sizeof(struct _foo),
sizeof( foo) );
printf( "BAR: %d %d\n", sizeof(struct _bar),
sizeof( bar) );
printf( "INTSIZE: %d\n", sizeof(int) );
}
EOC
sizes();
__END__
On 64 bit windows, outputs:
FOO: 4 4
BAR: 8 8
INTSIZE: 4
##
##
FOO: 4 4
BAR: 4 4
INTSIZE: 4