1

dwayne phillips による C 画像処理に取り組んでおり、そのソース コードを使用して画像処理の基本を理解しています。ソースコード内のすべての関数は、私が通常使用する別のスタイルで提供されています

ここでは、ソース コードで指定されている通常の関数を指定しminGWます。コンパイラで dev c++ を使用して、関数を持つコードをコンパイルしました。

edm8(in_name, out_name, the_image, out_image,
                  il, ie, ll, le, value)
           char   in_name[], out_name[];
           int    il, ie, ll, le;
           short  the_image[ROWS][COLS],
                  out_image[ROWS][COLS],
                  value;
        {
       int    a, b, count, i, j, k;

       create_file_if_needed(in_name, out_name, out_image);

       read_tiff_image(in_name, the_image, il, ie, ll, le);

       for(i=0; i<ROWS; i++)
          for(j=0; j<COLS; j++)
             out_image[i][j] = 0;

          /***************************
          *
          *   Loop over image array
          *
          ****************************/

       printf("\n");

       for(i=0; i<ROWS; i++){
          if( (i%10) == 0) printf("%3d", i);
          for(j=0; j<COLS; j++){
             if(the_image[i][j] == value)
                out_image[i][j] = distance_8(the_image, i, j, value);
          }  /* ends loop over j */
       }  /* ends loop over i */

       write_array_into_tiff_image(out_name, out_image,
                                   il, ie, ll, le);

    }  /* ends edm8 */

上記のような関数をコンパイルすると、これらの2つのエラーが発生します

 [Error] expected constructor, destructor, or type conversion before '(' token  
 [Error] expected unqualified-id before '{' token in

それらの生成の原因を追跡、デバッグ、および理解することはできませんか??

4

1 に答える 1

2

次のメッセージ: [エラー] '(' トークンの前にコンストラクタ、デストラクタ、または型変換が必要です

実際、C ではなく C++ でコンパイルしていると思います。

環境で正しいビルド オプションを設定して、実際に C++ ではなく C でコンパイルしていることを再確認してください。ファイルの拡張子が .c であっても、多くの IDE はデフォルトで C++ でコンパイルされます。

于 2013-01-13T08:42:53.907 に答える