関数

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
hot

関数

#1

投稿記事 by hot » 3年前

以下のプログラムをmain関数、func1関数、func2関数の順に定義するプログラムの書き換え方を教えてください
いつもコンパイルエラーがでてできません
プロトタイプを宣言を利用したほうがいいとアドバイスをもらいました
#include<stdio.h>
#include<math.h>

int main()

double func2(double a)
{
return(a*2);
}

double func1(double a)
{
return(func2(a));
}

int main()
{

アバター
purin52002
記事: 235
登録日時: 4年前
連絡を取る:

Re: 関数

#2

投稿記事 by purin52002 » 3年前

こんにちは

main関数、func1関数、func2関数の順に定義するプログラムの書き換え方は以下のようになります。
(func1、func2の中身は適当)

コード:

int main()
{
    func1();
    func2();
}

void func1(void) {}
void func2(void) {}
これで、main関数、func1関数、func2関数の順に定義できました。
しかしこのままではエラーが出ます。

プログラムは基本的に上から下へ実行され、
急に出てきたfunc1やfunc2にコンパイラが驚いてしまうからです。

これは変数を扱うときにもいえます。

コード:

int main()
{
    a = 10;//エラー aってなんだ?
}
こういうときは宣言を行います。

コード:

int main()
{
    int a;
    a = 10;//エラーにならない
}
関数も同じです。
関数の宣言を行います。(これがプロトタイプ宣言)

コード:

void func1(void);//ここで関数宣言
void func2(void);

int main()
{
    func1();
    func2();
}

void func1(void) {}
void func2(void) {}
こんなんでどうでしょう?
c++初心者を自負しています。
質問者さんには今後私にプログラミングを教えてくれるようにやさしく丁寧に教えるつもりです。ぎぶあんどていく^p^
回答者さんには精一杯感謝します。ぎぶおんりー^p^

返信

“C言語何でも質問掲示板” へ戻る