• 締切済み

ファイルiconvについて

UNIXのコード・セット間での文字の変換ファイルiconvの 標準形式iconv( iconv_t cd, const char **inbuf, size_t *inbytesleft,char **outbuf, size_t *outbytesleft ); の第二引数は”const”ない場合、どんな影響及ぼしますか?ご教授ください。

みんなの回答

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

ご自分で iconv を作成されるということですね。 const は、*inbuf の内容が書き換えられないように明示的に指定するものです。 これは、プログラマ自信に対してと、利用者に対して明示しています。 もしプログラマが iconvを作成している中で *inbuf を 書き換えようものなら、コンパイルエラーになります。また、利用者は、const となっている事でアドレス渡しで文字列を渡しても、プログラム内での書き換えは起こらないなと安心して使えます。 ということは、const 宣言しなかったら、*inbufは書き換えが発生する可能性があるということになります。そのことを、iconvのマニュアルに記載すれば、仕様になりますし、記載しなくてプログラマの思いとは異なる動きをすれば、不具合ということになります。 http://tsugu.no-ip.com:8080/sotuken/const/