変数を定数値として扱う
キャストすることによって「定数値であるべき変数」に対して代入を抑制する方法。
#ifndef __cplusplus extern #else extern "C" #endif signed char _mb_cur_max; #define MB_CUR_MAX ((int)_mb_cur_max)...
MB_CUR_MAXマクロの定義で、int型にキャストしているのは、こうしておかないとMB_CUR_MAXに代入したり、インクリメントしたりといった誤操作ができてしまうからです。規格の要件にはありませんが、MB_CUR_MAXは右辺値であるべきです。
http://libc.blog47.fc2.com/blog-entry-56.html