使用の潜在的な落とし穴に関係なく、ffmpeg ヘッダー ファイルの 1 つでこのコード スニペットを見つけました。
/**
* Convenience macro, the return value should be used only directly in
* function arguments but never stand-alone.
*/
#define av_err2str(errnum) \
av_make_error_string((char[AV_ERROR_MAX_STRING_SIZE]){0}, AV_ERROR_MAX_STRING_SIZE, errnum)
私の質問は について(char[AV_ERROR_MAX_STRING_SIZE]){0}
です。
基本的char[]
に、スタック上に配列を作成し、そのスタック アドレスを として渡し、 によってそのchar*
場で埋められav_make_error_string()
ます。
これは C99 構文です。
C++11より前の構文には同等の構文がありますか?
これは C++11 でも動作しますか?