![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
main.c:7:43: warning: implicit declaration of function ‘dcal’ [-Wimplicit-function-declaration]
fprintf(stdout,"dcal(%g,%g)=
%g\n",a,b,dcal(a,b));
^~~~
main.c:7:34: warning: format ‘%g’ expects argument of type ‘double’, but
argument 5 has type ‘int’ [-Wformat=]
fprintf(stdout,"dcal(%g,%g)=
%g\n",a,b,dcal(a,b));
~^ ~~~~~~~~~
%d
main.c:10:5: warning: implicit declaration of function ‘g_print’; did you mean ‘dprintf’? [-Wimplicit-function-declaration]
g_print();
^~~~~~~
dprintf
--------------------------------------------------------------------
func.c:6:5: warning: implicit declaration of function ‘fprintf’ [-Wimplicit-function-declaration]
fprintf(stdout,"func:gval=%d\n",gval);
^~~~~~~
func.c:6:5: warning: incompatible implicit declaration of built-in function ‘fprintf’
func.c:6:5: note: include ‘<stdio.h>’ or provide a declaration of ‘fprintf’
func.c:6:13: error: ‘stdout’ undeclared (first use in this function)
fprintf(stdout,"func:gval=%d\n",gval);
^~~~~~
func.c:6:13: note: each undeclared identifier is reported only once for each function it appears in
func.c:6:37: error: ‘gval’ undeclared (first use in this function); did you mean ‘dcal’?
fprintf(stdout,"func:gval=%d\n",gval);
^~~~
dcal
上記のような警告やエラーが出たのですがどのような意味か教えてください。
No.1ベストアンサー
- 回答日時:
全文、google翻訳にかけてみてください。
わりとまともな日本語になります。
○C言語では、「使う前に宣言」が大原則ですが、大昔のC言語ではそうではありませんでした。
その名残りで
・宣言されていない関数は 「引数任意、戻り値intの関数」として宣言されたと見做す
・宣言されていない変数は 「int型の変数」として宣言されたと見做す
という「暗黙の宣言(implicit declaration)」というルールがあります。
ただし、昨今の作り方としては非推奨だし、変数の方は(最近の規格では)暗黙の宣言はできずにエラーとなります。
warning: implicit declaration of function 〜 は「関数の暗黙の宣言をしている」という「警告」です。
正確にはエラーではありませんので、コンパイル自体は進みます。
error: ‘???’ undeclared というのは「???という変数が未定義」というエラーです。
○ printf や fprintf , scanf 等の一部の関数( 宣言が func(...) みたいになっているもの) は、本来、引数の型をチェックできません。
%〜 の数や対応する型を正しく指定するのは、プログラマの自己責任となります。
ですが、一部のコンパイラは、できる範囲でチェックして、対応が間違っているときに「警告」を出します。
> main.c:7:34: warning: format ‘%g’ expects argument of type ‘double’, but
> argument 5 has type ‘int’ [-Wformat=]
%g は 対応するdouble型の値を出力する書式です。
これに該当する箇所には、 dcal(a,b) があります。
この dcal が「暗黙の宣言」によって, int型の戻り値の関数となっています。
そのため、求められる(expects)型である double と、指定された int とで違います、という警告が出ています。
○ did you mean 〜
未定義の名前にたいして「もしかしたらこれの打ち間違いですか?」という提案をしているものです。
ですが、いずれも的はずれの指摘をしているようです。
https://oshiete.goo.ne.jp/qa/11400399.html
こちらでは、(func.hの使い方がよくないですが) ちゃんと事前の宣言がされていてエラーなくコンパイルできます。
変更の方法がよくなかったのではないでしょうか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) cryptcatのビルド 4 2022/07/21 14:55
- C言語・C++・C# Cのオブジェクトファイルの逆アセンブル 5 2023/05/13 01:51
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- 英語 Results: Two implant failures, one from each subgr 1 2022/12/10 16:49
- 英語 英文の添削お願いします。【長文です。】 マッチングアプリで相手を言い負かしている時のやつです。 色々 1 2023/07/01 02:12
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- 英語 Osseointegration has been suggested to represent a 3 2022/06/10 08:22
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- 英語 できるだけ直訳で英語の翻訳をお願いします。(英語→日本語) 1 2022/10/15 20:59
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
今の日本に期待することはなんですか?
目まぐるしく、日本も世界も状況が変わる中、あなたが今の日本に期待することはなんですか?
-
洋服何着持ってますか?
洋服を減らそうと思っているのですが、何着くらいが相場なのかわかりません。
-
【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
【お題】追い込まれた犯人が咄嗟に言った一言とは?
-
C言語のポインターに関する警告
C言語・C++・C#
-
C言語でヘッダファイルにグローバル変数を宣言する
C言語・C++・C#
-
C言語のコンパイルエラー
C言語・C++・C#
-
-
4
gcc: incompatible pointer type
C言語・C++・C#
-
5
【gcc・cygwin】multiple definitionエラーの解決法
C言語・C++・C#
-
6
makeコマンドのエラーについて(
UNIX・Linux
-
7
Pro*Cの構文エラー
その他(プログラミング・Web制作)
-
8
C言語 配列の長さの上限
C言語・C++・C#
-
9
ポインター引数の関数でコンパイルエラーが出る。
C言語・C++・C#
-
10
svnでファイル移動すると履歴がついてこない
その他(コンピューター・テクノロジー)
-
11
C言語初心者の質問失礼します。
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
void func( void )について
-
C言語ゲーム製作途中(勉強中)
-
2重定義って??
-
CStringを含むconst構造体
-
visualstudio C# テキストボッ...
-
構造体の宣言でエラーが出ます。
-
C++でboolにintの値を代入する...
-
変数の型を定義しなかった場合...
-
long型の定数の末尾にLを付ける...
-
「Aに対するBの割合」と「Aに対...
-
ある商品のロス率を5%見込み、...
-
2÷3などの余りについて
-
C言語 エラーの原因がわからな...
-
信頼区間の1.96や1.65ってどこ...
-
#define _CRT_SECURE_NO_WARNIN...
-
std::set<int> で、ある値が何...
-
-'0'の意味について
-
Aの値からBの値を除するとは??
-
t分布表の見方について
-
カードシャッフルのブログラム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
long型の定数の末尾にLを付ける...
-
visualstudio C# テキストボッ...
-
typedef enumの使い方を教えて...
-
2重定義って??
-
C++のfor文について
-
C++でboolにintの値を代入する...
-
main.c:7:43: warning: implici...
-
【#define】 defineで定義した...
-
構造体の要素すべてに対する四...
-
void func( void )について
-
enumについて
-
intとINTの違いは?
-
エラー「invalid conversion fr...
-
プログラムの中で別のmainを呼...
-
ハンドルされていない例外が発...
-
変数の型を定義しなかった場合...
-
関数の実体定義にヘッダファイ...
-
構造体の宣言でエラーが出ます。
-
DLLでLIBファイルが作成されない
おすすめ情報