C言語なら俺に聞け( ..
[2ch|▼Menu]
29:デフォルトの名無しさん
09/01/25 03:16:15
>>27
ちゃんとcは1になると思うが、どういうエラーが起こるんだ

30:27
09/01/25 03:48:53
>>28
>>29
申し訳ないです。
bの値が0であったためエラーが起きたみたいです。

31:デフォルトの名無しさん
09/01/25 04:08:27
>>27でどうしてbの値が0になるのか不思議だ

32:デフォルトの名無しさん
09/01/25 05:14:40
型の違いに対する警告じゃね?

33:デフォルトの名無しさん
09/01/25 05:16:05
>>27
cに代入した値は、何か別の場所で使ってる?

34:デフォルトの名無しさん
09/01/25 07:55:48
ヘッダーファイルをインクルードせずにコンパイルおよび実行できてしまったのですが
これは何でですか?

具体的には
int main(void)
{
printf("%f\n", sqrt(3));

return 0;
}
です。
stdio.h math.h をインクルードしないとエラーが出ると思ったのですが・・・

環境は cygwin gcc 3.4.4です。
コンパイルオプションなどは特に設定してません。

35:デフォルトの名無しさん
09/01/25 08:27:22
どのエラーを期待してるのかわからないが、-Wall をつければ
いくつか警告がでるはず。

一般的に必須なのは math.h
sqrt() の返り値が double であると宣言する必要がある。

ただし、gccはprintfのフォーマット演算子の解析しているので、
"%f"から double を類推できて、問題なく動いているのだと思う。

36:34
09/01/25 09:14:06
>>35
数年の記憶ではエラーが出たような気がして。

-Wall試してみました。警告出てきました。
ですが、エラーにならないならインクルードする必要がないってことになってしまいませんか?
それとも、このエラーにならないってのはgccの仕様であって、
C89やC99では認められてなかったりするのでしょうか?


37:デフォルトの名無しさん
09/01/25 09:15:15
数年前の記憶では
です。


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5192日前に更新/9018 Bytes
担当:undef