ここから本文です

C言語プログラム

kot********さん

2013/2/719:15:06

C言語プログラム

int num = 100;

void func1(void);
void func2(int num);

int main(void)
{
int num = 1;

func1();
func2( num );


return 0;
}

void func1(void)
{
printf( "%d\n", num );
}

void func2(int num)
{
printf( "%d\n", num );
}

なぜfunc1のほうはグローバル変数が入るんでしょうか?
教えて欲しいです!お願いします!
void func1(void);この(void)が何をやってるか理解できないです
何を覚えたら理解できるんでしょうか?

閲覧数:
174
回答数:
2
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

dia********さん

編集あり2013/2/720:06:33

コンパイラは変数名をまず関数の中の宣言の中から探す。

あれば、それを使う。

無ければグローバル領域の宣言を探して使う。

それでも無ければエラー。

質問した人からのコメント

2013/2/7 20:47:02

降参 お二人ともありがとうございました!
わかりやすかったです!
理解できました!

ベストアンサー以外の回答

1〜1件/1件中

fac********さん

2013/2/719:25:15

ブログラムの起動直後にnumは100に初期化されます。
グローバルですから、どの関数からも参照できます。

void func1(void);この(void)は、関数の引数が無い事を示しています。
引数がない事を示しているだけで、何もしていません。

ただ、誤って、func1()に引数を指定した時に、コンパイラがエラーを出します。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる