tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] Strange sizeof construct


From: Mike
Subject: Re: [Tinycc-devel] Strange sizeof construct
Date: Wed, 14 Nov 2007 20:18:18 -0500
User-agent: Thunderbird 2.0.0.6 (Windows/20070728)

>>> printf("%d\n",sizeof(arr)[0]); // ok, but why?
Why should that be valid syntax?  Is C99 really weird or what?
(its a immediate value being used in place of a pointer.)

-Mike

Marc Andre Tanner wrote:
On Wed, Nov 14, 2007 at 12:39:18AM +0100, grischka wrote:
Could a C guru out there please tell me why the following works? Extra points if you can explain why it makes sense.

#include <stdio.h>

int main(){
int arr[10];
printf("%d\n",sizeof arr[0]);  // ok
printf("%d\n",sizeof(arr[0])); // ok
printf("%d\n",sizeof(arr)[0]); // ok, but why?
return 0;
}
And what about that one:

printf("%d\n",sizeof (0)[arr]);

Yep even stranger. The good thing is that if you add another pair of
parantheses tcc takes it and life is good.

  printf("%d\n",sizeof((arr)[0]));
  printf("%d\n",sizeof((0)[arr]));

-- gr
Marc




reply via email to

[Prev in Thread] Current Thread [Next in Thread]