ユーザ関数について

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

ユーザ関数について

#1

投稿記事 by kyon2kumi » 12年前

設計途中でまだ意味不明のプログラムなのですが
ユーザ関数の受け渡しについて試しにコンパイルしてみたら


エラー E2356 expawa.c 6: 'exp' の再宣言で型が一致していない
エラー E2344 C:\BORLAND\BCC55\include\math.h 157: 一つ前の 'exp' の定義位置
警告 W8075 expawa.c 9: 問題のあるポインタの変換(関数 main )
警告 W8064 expawa.c 16: プロトタイプ宣言のない関数の呼び出し(関数 main )
エラー E2356 expawa.c 21: 'exp' の再宣言で型が一致していない
エラー E2344 expawa.c 6: 一つ前の 'exp' の定義位置

というエラーがでてきました
再宣言での型は同じだと思うのですがなぜでしょう?
わかる方がいたら教えてください


#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>

int exp(int yuan[3][3]);

int main() {
int (*po[])() = { exp };
int menu;
int a[3][3],b[3][3];


printf("実行する関数の番号を指定してください\n 1:拡大縮小 2:回転 3:鉛直方向のせん断 4:水平方向のせん断 5:平行移動");
scanf("%d" , &menu);
(*po[menu])(a);
return 0;
}


int exp(int yuan[3][3]){
//変換後の行列ploce変換行列のdata
double ploce[3][3],data[3][3];
double a,b;
int i,j;

//各行列を初期化
for(i=0;i<3;i++){
for(j=0;j<3;j++){
ploce[j]=0;
data[j]=0;
}
}

printf("縦方向の倍率と横方向の倍率をスペースで区切って入力してください\n");
scanf("%lf %lf",&a,&b);
data[0][0]=a;
data[1][1]=b;
return 0;

}

kyon2kumi

Re: ユーザ関数について

#2

投稿記事 by kyon2kumi » 12年前

すいませんcodeの入力を忘れてしまいコードがみにくいです、ごめんなさい

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: ユーザ関数について

#3

投稿記事 by h2so5 » 12年前

エラー E2344 C:\BORLAND\BCC55\include\math.h 157: 一つ前の 'exp' の定義位置
C言語の標準ライブラリ(math.h)にあるexp関数を再定義しようとしているのでエラーになっています。

kyon2kumi

Re: ユーザ関数について

#4

投稿記事 by kyon2kumi » 12年前

すみません、ありがとうございます
なるほど、初歩的なミスでした
今後トピックたてるときはフォーラムルールきちんと読みます、すみませんでした

閉鎖

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