11

私はopencv2.0関数と呼ばれるCプログラムを持っています:

cvSaveImage( out_img_name, img);  

コンパイラgccは次のように報告します

関数cvSaveImageには引数が少なすぎます

highgui.hのcvSaveImageのプロトタイプは

CVAPI(int)cvSaveImage(const char * filename、const CvArr * image、const int * params CV_DEFAULT(0))

電話を変更した後

cvSaveImage( out_img_name, img, 0);  

コンパイルは最終的に成功しました。関数の引数のデフォルト値はC++でのみサポートされ、Cではサポートされないという意味ですか?

ありがとう、よろしく!

4

2 に答える 2

15

正解-標準Cは、C89標準でもC99標準(またはC2011標準)でも、デフォルトの引数をサポートしていません。一部のコンパイラでそれをサポートするコンパイラ固有の拡張機能がある場合がありますが、これは標準ではありません。

于 2009-11-15T04:53:03.880 に答える
2

可変数の引数を使用する場合、Cには特別な表記が必要です。

http://www.swig.org/Doc1.3/Varargs.html

You can't define a default variable to be passed in to a plain function. You could set-up a macro that auto-magically passes in a default value and use that as your function entry if you want to.

于 2009-11-15T04:55:32.960 に答える