私はいつもchar
をunsigned char
とwchar_t
としてwint_t
としています。それで、glibcを再コンパイルしてもしなくても、それらの型を使うように関数インタフェースを変更する解決策はありますか? How to change wchar.h to make wchar_t the same type as wint_t?'unsigned char'と 'wchar_t'を自動的に使用するglibcライブラリ関数をラップする方法は?
答えて
コンパイラにコマンドラインオプションを渡して、char
をデフォルトで符号なしにすることができます。 char
をマクロとtypedefで再定義してインターフェイスを標準ライブラリ関数に変更することは、目標を達成する正しい方法ではありません。
gccとclangの場合は、-funsigned-char
を使用してください。
Visual C++では、-J
または/J
を使用してください。
ワイド文字タイプはシステム固有で、通常はLinuxシステムでは32ビット幅、glibcが使用されている場合は32ビット幅ですが、歴史上の理由からMicrosoftツールでは16ビット幅です。このタイプを変更すると、コンパイラとライブラリの間に互換性の問題が生じます。それについても考えません。
'-funsigned-char' gccオプションを使わずにcharをデフォルトでunsignedにするには?私は毎回入力したり、エイリアスやものを作りたくありません。私は 'gcc'コマンドを使い、デフォルトでこの動作をしたいだけです。おそらく、プログラムに直接置かれる設定ファイルやプラグマがありますか? –
'putput()'、 'fputc()'、 'putc()'の引数の型は 'char'ではなく、' putwchar() '、' fputwc() '、' putwc 'wchar_t'?また、なぜ人間の 'mbstowcs'から' wchar_t'型の変数が 'iswlower()'に渡されるのでしょうか?これは 'iswlower()'が 'wint_t'を取るという事実と矛盾します。その例は間違っていますか? –
@IgorLiferenko:それは別の質問の価値があります。 –
- 1. unsigned char *をcのunsigned int *に変換する方法は?
- 2. ESP8266 WebServer unsigned charをストリームする方法
- 3. unsigned char *をcharに変換する方法*
- 4. unsigned char *に関する問題*
- 5. ajaxedコンテンツにjquery .delegate()をラップ関数を使用する方法?
- 6. linux(Makefile)で自分自身の動的ライブラリを使用する方法
- 7. wchar_tなしでUTF-8 charをデコード/エンコードする方法
- 8. vararginとvarargoutを使って関数をラップする方法は?
- 9. 可変長引数を使用して関数をラップする方法は?
- 10. データベースの行数を自動的に制限する方法は?
- 11. 'wchar_t *'を 'const char *'に変換する方法
- 12. ofstreamを使用してディレクトリを自動的に作成する方法
- 13. 自動テストにMicrosoft認証ライブラリ(MSAL)を使用する方法
- 14. 関数を自動的にロードする方法
- 15. C++で 'char *'をとる関数に 'const char *'引数を与える方法は?
- 16. onload関数を使ってonclickを自動的に作成する方法
- 17. unsigned charの各ビットの値を取得する方法は?
- 18. のconst char型へのwchar_t *に変換する方法*
- 19. Visual Studio内でinnoスクリプトをラップして自動的にビルドする方法は?
- 20. unsigned charをjbyteArrayに変換する方法
- 21. win32のCプログラミングでchar *をunsigned intに変換する方法
- 22. バイナリデータを読み込み、unsigned char(C++)にキャストする方法
- 23. `wint_t`と` wchar_t`にキャストする方法は?
- 24. コアデータAddTo ...関数を使用すると自動的に生成されます
- 25. haskellに関数をラップする方法は?
- 26. wchar_tとPOSIXライブラリ
- 27. Cを使ってunsigned charの長さを計算する方法は?
- 28. unsigned shortをchar *に効率的に変換する*
- 29. 動的ライブラリを持つプログラムでtcmallocを使用する方法
- 30. char vs wchar_t
しないでください。 :)あなたは問題を求めています。良い質問。 – Qix
私が 'ラップ'と言ったとき、私は 'toupper()'のような新しいラッパー関数を書いて、 'toupper()'を呼び出し、コードを変更してラッパーを呼び出すことを意図しました。次に、ラッパーの中に独自のコードを追加して、何かを修正することができます。それは良い一般的な方針です。 –