GPGAのやる気を持続する開発および、研究日記

2008-02-13

[][]Cならコンパイルできるが、C++だとコンパイルできないプログラム 14:27

void func();

int main(void)
{
	func(1);
	return 0;
}

void func()
{
}

melt_slincmelt_slinc 2008/02/13 23:29 詳細な解説キボン

GPGAGPGA 2008/02/14 01:55 プロトタイプ宣言で仮引数なしにした場合
Cは仮引数を省略されたと見るので、どのような引数も受け付ける。
C++は仮引数をvoidとして見るために、コンパイルエラー。
Cの場合、現在はfunc(1);だが、func(1, 2.0, ”hoge”);でもエラーにならない。(たぶん)

2007-01-05

[]こんな記述が可能 13:31

Cで新たなる発見。

以下のプログラムがきちんと通った!

#include <stdio.h> 

int main(void) 
{
    printf("%c\n", 3["abcde"]);

    return 0;
}

詳細はここに書いてある。

理由としては

「どんなaとeをもってきても、a[e]は*( ( a ) + ( e ) )と同じものであるという定義である」

ということらしい。

パラパラパラパラ 2007/11/01 17:28 d
ですね^^;私のやっている本にも詳しく書いてありました。
GPGA(様)っていうハンドルネーム使ってる人って他にもいますかね?
私が誰か分かりますか?違う人(勘違いしてたら)ならごめんなさい。