[PHP-dev 85] Re: [PHP-users 3119] Re: PHP 4.1.0RC1
Osamu Shigematsu
php-dev@php.gr.jp
Fri, 26 Oct 2001 11:45:56 +0900
重松です。こんにちは。
>> C 言語的には問題ないのではないでしょうか。
>
> 細かいANSI Cの規格を知らないので、何ともいえませんが、
> 問題となるCコンパイラも多いと思います。
>
> 私のコンパイラは
>
> [yohgaki@dev RC]$ gcc -v
> Reading specs from /usr/lib/gcc-lib/i586-redhat-linux/2.96/specs
> gcc version 2.96 20000731 (Kondara MNU/Linux 2.0)
今、ちょっと仕様書が手元にないので、確認できません。すみません。
[shige@Dronjo shige]$ gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
#include <stdio.h>
int main(void)
{
char a[] = {1,2,3};
char b[] = {1,2,3,};
printf("%d %d\n", sizeof a, sizeof b);
return 0;
}
はどちらも 3 で同じでした。
もうちょっと複雑に、
#include <stdio.h>
int main(void)
{
struct t{
int i;
double d;
}s[] = {
{1,1.0,},
{2,2.0,},
};
printf("%d\n", sizeof(s)/sizeof(struct t));
return 0;
}
ももちろん、OK でした。
CodeWarrior でも試しましたが、問題ありませんでした。
言うまでもないですが、enum だと、最後に空の不当な要素ができてしまいますから、
NG になりますね。
--
Osamu Shigematsu
http://www.ravi.ne.jp/%7eshige/
mailto:shige@ravi.ne.jp