![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
WndProc関数の前にFunc関数を書いているから、WndProc関数の
ソースがコンパイルされる時はFunc関数は既に読み込み済みで
Func関数のプロトタイプは必要無いと思ったんだけど、必要なんですか?
#include <windows.h>
int Func(HWND); ←これは必要ですか?
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPInst, LPSTR lpstr, int n)
{
…
}
int Func(HWND hWnd)
{
…
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static int i;
switch(uMsg){
case WM_CREATE:
i = Func(hWnd);
break;
…
}
No.3
- 回答日時:
C++の場合はプロトタイプ宣言は必須というのは初耳ですが、関数の定義が使用される位置よりも前に記述されていれば、CでもC++でもプロトタイプ宣言は省略できます。
どの位置に宣言されていても省略できるというわけではないので注意してください。
質問にあるソースでは、Func()より前に記述している関数で利用していないのでFunc()のプロトタイプ宣言を省略できます。
WndProc()がFunc()よりも前に記述されている場合は、プロトタイプ宣言が必要になります。
もしも、Func()がこのファイル内でしか用いられない関数であればstaticを付けておいた方がいいかもしれません。デフォルトではexternになっていたと記憶しています。
ありがとうございます。
違う意見が出たから閉じずに待っていました。
このソースならプロトタイプ宣言は省略できるんですね。
関数にstaticとかexternとかを付けるとどうなるのかについて
知らなかったから勉強しようと思いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- C言語・C++・C# Cのオブジェクトファイルの逆アセンブル 5 2023/05/13 01:51
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
2重定義って??
-
long型の定数の末尾にLを付ける...
-
typedef enumの使い方を教えて...
-
C++でboolにintの値を代入する...
-
visualstudio C# テキストボッ...
-
変数の型を定義しなかった場合...
-
構造体の要素すべてに対する四...
-
プログラムの中で別のmainを呼...
-
C言語 宣言した変数になにも代...
-
void main (void)について、、、
-
void func( void )について
-
C言語で分割ファイル先の関数を...
-
C++のfor文について
-
VC6でlong longでエラー?
-
ハンドルされていない例外が発...
-
24ビットの変数
-
C言語でmain関数でのreturnとexit
-
intとINTの違いは?
-
#defineについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
long型の定数の末尾にLを付ける...
-
2重定義って??
-
visualstudio C# テキストボッ...
-
C++のfor文について
-
構造体の要素すべてに対する四...
-
typedef enumの使い方を教えて...
-
変数の型を定義しなかった場合...
-
ハンドルされていない例外が発...
-
関数の実体定義にヘッダファイ...
-
intとINTの違いは?
-
【#define】 defineで定義した...
-
C++でboolにintの値を代入する...
-
構造体の宣言でエラーが出ます。
-
main.c:7:43: warning: implici...
-
プログラムの中で別のmainを呼...
-
void func( void )について
-
エラー「invalid conversion fr...
-
C言語 宣言した変数になにも代...
-
0除算を判定したい
おすすめ情報