標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
XPG4 |
両方 |
#include <wchar.h>
int wcwidth(const wint_t wc);
#define _XOPEN_SOURCE
#include <wchar.h>
int wcwidth(const wchar_t wc);
wc のグラフィック表示がディスプレイで占有する印刷位置数を 判別します。各印刷ワイド文字は、ディスプレイ上にそれ独自の印刷位置数を 占有します。その数は、装置上のその位置とは無関係です。
XPG4 の特殊な動作: プログラム・ソース・ファイル内の wchar ヘッダーをインクルードするステートメントより前に、XPG4 の動作を指定してフィーチャー・テスト・マクロを定義した場合、コンパイラーは、ユーザーのプログラムが wcwidth() 関数の XPG4 版を使用するものと想定します。 XPG4 と他のフィーチャー・テスト・マクロのリストについては、表 1 を参照してください。
int wcwidth(const wchar_t wc);
XPG4 の wcwidth() と C/370™、つまり XPG4 以外の wcwidth() 関数との間の違いは、パラメーター wc が、wint_t 型ではなく wchar_t 型であることです。
正常に実行された場合、wcwidth() は、wc が占有した印刷位置数を戻します。
wc が NULL または非スペース・ワイド文字である場合、wcwidth() は 0 を戻します。
wc が印刷ワイド文字でない場合、wcwidth() は 1 を戻します。
⁄* CELEBW31 *⁄
#include <stdio.h>
#include <wchar.h>
int main(void)
{
wint_t wc = L'A';
printf("wc has a width of: %d¥n", wcwidth(wc));
}
wc has a width of: 1