ファイル名:main.c
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define ARRAY_SIZE 100
unsigned max(unsigned *data,unsigned size)
{
unsigned temp_max=0;
int i=0;
for(i=0;i<size;i++){
if(temp_max<data)temp_max=data;
}
return temp_max;
}
unsigned min(unsigned *data,unsigned size)
{
unsigned temp_min=*data;
int i=0;
for(i=0;i<size;i++){
if(temp_min>data)temp_min=data;
}
return temp_min;
}
int main(void)
{
unsigned data[ARRAY_SIZE];
int i;
srand((unsigned)time(0));
for(i=0;i<ARRAY_SIZE;i++){
data=rand();
}
printf("最大:%u,最小:%u",max(data,ARRAY_SIZE),min(data,ARRAY_SIZE));
return 0;
}エラーメッセージ:
<VC>
1>------ ビルド開始: プロジェクト: testbccorerror, 構成: Debug Win32 ------
1>コンパイルしています...
1>main.c
1>c:\programfile\vc++\testbccorerror\testbccorerror\main.c(7) : error C2059: 構文エラー : '型'
1>c:\programfile\vc++\testbccorerror\testbccorerror\main.c(17) : error C2059: 構文エラー : '型'
1>c:\programfile\vc++\testbccorerror\testbccorerror\main.c(36) : warning C4047: '>' : 間接参照のレベルが 'unsigned int [100]' と 'int' で異なっています。
1>c:\programfile\vc++\testbccorerror\testbccorerror\main.c(36) : warning C4047: ':' : 間接参照のレベルが 'unsigned int *' と 'int' で異なっています。
1>c:\programfile\vc++\testbccorerror\testbccorerror\main.c(36) : warning C4047: '<' : 間接参照のレベルが 'unsigned int [100]' と 'int' で異なっています。
1>c:\programfile\vc++\testbccorerror\testbccorerror\main.c(36) : warning C4047: ':' : 間接参照のレベルが 'unsigned int *' と 'int' で異なっています。
1>ビルドログは "file://c:\programfile\VC++\testbccorerror\testbccorerror\Debug\BuildLog.htm" に保存されました。
1>testbccorerror - エラー 2、警告 4
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
<BCC>
> C:\borland\bcc55\Bin\make.exe -fDebug\natural.mak TARGET
MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
bcc32 -WC -WM -3 -Od -w -AT -ps -H -k -Q -b- -v -y -DDEBUG -nDebug -IC:\programfile\Tools\DxLib_Bcc -c C:\programfile\BCC\natural\main.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
c:\programfile\bcc\natural\main.c:
プリコンパイルヘッダの読み込み
エラー E2040 c:\programfile\bcc\natural\main.c 7: 宣言が正しく終了していない
*** 1 errors in Compile ***
** error 1 ** deleting Debug\main.obj
Make End !! (Elapsed time 0:00.234)
というエラーがでてコンパイルできないのですが、これをCygWinのgccで次のようなコマンドでコンパイルすると、全く問題なくコンパイルできました。これはなぜでしょうか?
<コマンドライン>
gcc main.c -omain.exe
一応改行コードの変換だけはしましたが、ファイル名は同じですし、VC上で書いたものをコピペしたコードをBCCやGCCでコンパイルしただけなので、なぜこのような差異が出てくるのかが不思議です。
これはこのコードのどこに問題があるのでしょうか?ずっと格闘しているのですが、全く分かりません。
どうか教えてください、よろしくお願いします。