アカウント名:
パスワード:
#include int main(){ printf("Good-bye, world\n"); return 0;}
/* K&R 2nd editionとしては、*/
#include
void main(){ printf("Good-by, world");}
/* だと思います。(笑 */
ネタにマジレスかもしれないけど。私の持ってる日本語訳(もちろん Second Edition)では
#include <stdio.h>
main(){ printf("hello, world\n");}
なんだよね。スラドでも main() の戻り値が void って誤解はメジャーなのかな?あと、hello, world は Hello, World が正しいって主張する人もときどき見かける。ひょっとして英語版ではそうなってるの?
main() { printf("hello, world\n"); }
です。 #include なしでprintfをつかっても文句を言わないのが当時のCコンパイラ。未知の関数はとりあえず整数戻り値扱いで文句言わずにコンパイル。
関数のプロトタイプ宣言も無いですからね. 関数が想定しているパラメータが呼び出しの際に渡されなかったらどうなるかは, 確か実装依存.
だから, そうした型の不一致に伴うエラーは実行時にならないと分からないとか.
確か実装依存.
未定義じゃないですか。きっと。
ただ、当時は事実上、intとdoubleしか渡さないようなものだったので、派手な問題にはなりにくかったのではないかと推測しますけど。
>当時は事実上、intとdoubleしか渡さないようなものだった
みんなの好きなポインタもあるし、構造体もあるよ。さらに、unionだったら、どうなるかな?
型を指定せずに定義した関数はintを返すと仮定されます。voidではありません。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stableって古いって意味だっけ? -- Debian初級
遺言 (スコア:2)
#include
int main()
{
printf("Good-bye, world\n");
return 0;
}
Re: (スコア:0)
/* K&R 2nd editionとしては、*/
#include
void main()
{
printf("Good-by, world");
}
/* だと思います。(笑 */
Re:遺言 (スコア:0)
ネタにマジレスかもしれないけど。私の持ってる日本語訳(もちろん Second Edition)では
#include <stdio.h>
main()
{
printf("hello, world\n");
}
なんだよね。
スラドでも main() の戻り値が void って誤解はメジャーなのかな?
あと、hello, world は Hello, World が正しいって主張する人もときどき見かける。
ひょっとして英語版ではそうなってるの?
Re:遺言 (スコア:2)
main()
{
printf("hello, world\n");
}
です。 #include なしでprintfをつかっても文句を言わないのが当時のCコンパイラ。未知の関数はとりあえず整数戻り値扱いで文句言わずにコンパイル。
Re:遺言 (スコア:1)
関数のプロトタイプ宣言も無いですからね. 関数が想定しているパラメータが呼び出しの際に渡されなかったらどうなるかは, 確か実装依存.
だから, そうした型の不一致に伴うエラーは実行時にならないと分からないとか.
Re:遺言 (スコア:1)
未定義じゃないですか。きっと。
ただ、当時は事実上、intとdoubleしか渡さないようなものだったので、派手な問題にはなりにくかったのではないかと推測しますけど。
Re: (スコア:0)
>当時は事実上、intとdoubleしか渡さないようなものだった
みんなの好きなポインタもあるし、構造体もあるよ。
さらに、unionだったら、どうなるかな?
Re: (スコア:0)
型を指定せずに定義した関数はintを返すと仮定されます。voidではありません。