ページ 11

ユーザ関数について

Posted: 2014年1月04日(土) 22:55
by kyon2kumi
設計途中でまだ意味不明のプログラムなのですが
ユーザ関数の受け渡しについて試しにコンパイルしてみたら


エラー 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;

}

Re: ユーザ関数について

Posted: 2014年1月04日(土) 22:57
by kyon2kumi
すいませんcodeの入力を忘れてしまいコードがみにくいです、ごめんなさい

Re: ユーザ関数について

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

Re: ユーザ関数について

Posted: 2014年1月04日(土) 23:06
by kyon2kumi
すみません、ありがとうございます
なるほど、初歩的なミスでした
今後トピックたてるときはフォーラムルールきちんと読みます、すみませんでした