C言語なら俺に聞け( ..
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