Re: [Tinycc-devel] Strange sizeof construct

2007-11-22 Thread Mike
Right. You said [] can be applied to any pointer. That sounds right. What's this a few emails ago with [] being applied to immediate values in C99, like this 6[4] Fred Weigel wrote: Marc sizeof is an operator arr evaluates to the base of the array. [] is an operator. since arr is the

Re: [Tinycc-devel] Strange sizeof construct

2007-11-19 Thread Jens Harms
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

Re: [Tinycc-devel] Strange sizeof construct

2007-11-14 Thread Marc Andre Tanner
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

Re: [Tinycc-devel] Strange sizeof construct

2007-11-14 Thread Mike
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

Re: [Tinycc-devel] Strange sizeof construct

2007-11-14 Thread Chris Lattner
On Nov 14, 2007, at 5:18 PM, Mike wrote: 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.) The C99 grammar says that sizeof is: unary-expression: sizeof unary-expression

Re: [Tinycc-devel] Strange sizeof construct

2007-11-14 Thread Chris Lattner
On Nov 14, 2007, at 5:39 PM, Mike wrote: (arr)[0] would be valid yes. But 40[0] should be invalid, right? Yes, and it is. 40[arr] is valid of course. -Chris ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org

[Tinycc-devel] Strange sizeof construct

2007-11-13 Thread Marc Andre Tanner
Hi, 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]);

Re: [Tinycc-devel] Strange sizeof construct

2007-11-13 Thread Simon 'corecode' Schubert
Marc Andre Tanner 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

Re: [Tinycc-devel] Strange sizeof construct

2007-11-13 Thread grischka
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;

Re: [Tinycc-devel] Strange sizeof construct

2007-11-13 Thread Chris Lattner
On Nov 13, 2007, at 3:39 PM, 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