「char」型を符号なしとして扱うコンパイラフラグ(-DCHAR_AS_UNSIGNEDのようなもの)を渡す古いコンパイラ用のレガシープロジェクトがあります。コンパイラは、Eclipseではなくコマンドラインで個別に実行する独自のものです。 char *ではなく文字列にunsigned char *を使う古いコードがたくさんあります。デフォルトでは、Eclipseはこれを処理し、char *を期待するルーチンにunsigned char *を渡すことが正しいと警告する。 Eclipseでこれらを無視し、コンパイラのように扱う方法はありますか?Eclipse CDT - 「char」を符号なしとして扱う
0
A
答えて
0
最も近いのは、char
をunsigned char
と定義しているプロジェクト(プロジェクト - >プロパティ - >パスとシンボル - >シンボル)にグローバルに定義されたシンボルを追加することでした。
ほとんどの場合、私が関心を持つレガシーコードのほとんどは、未解決のcharを使用していないので(この回避策に悩まされるでしょう)、ほとんど機能します。それは、特定の幅の整数型(たとえばU8
の場合はtypedef unsigned char U8
と定義されています)のtypedefでうまく動作するように見えます。このソリューションは、unsigned char
がファイルに使用されている場合は、unsigned unsigned char
に展開されるため、うまく動作しません。
関連する問題
- 1. ビットマップとして符号なしchar *配列を可視化
- 2. 符号なしのcharポインタとcharポインタの違い
- 3. 符号なしchar []、ビットまたはバイト?
- 4. Linux、Eclipse CDTをsuとして実行
- 5. 符号なしのcharの戻り値と+ =
- 6. 符号なしchar * single_charのビット表現を表示します。
- 7. Cの符号付きchar []をunsigned char []に変換します
- 8. Eclipse CDTとlib
- 9. GDBとEclipse CDT
- 10. Eclipse CDTビルドエラー
- 11. 符号なしlongの各バイトを符号なしchar配列の要素に変換する
- 12. 奇妙な符号なしchar * concatの振る舞い
- 13. アセンブラ、符号なしのchar型のベクトルを持つループ
- 14. 符号なしのcharのベクトルをバイナリファイルに書き込むC++
- 15. EclipseなしでCDTを使用する
- 16. 符号なし
- 17. Coverity静的解析符号なし整数はChar(C++)
- 18. 符号なしchar c = 255は "11111111"ですか?ここ
- 19. Python ctype help:Cの符号なしのcharポインタを使って作業する
- 20. gdbserverなしでEclipse CDTを使用してリモートデバッグを行う方法は?
- 21. 符号なしと符号付きバイナリ整数への追加
- 22. 符号付きと符号なしの数字の解釈
- 23. 符号なし文字と符号付き文字の比較
- 24. キャストと符号なしから符号付きへのキャスト
- 25. (符号なし)バイト
- 26. HDF5 + Eclipse CDTエラー
- 27. MySQLデータ型 - 符号なし符号なし
- 28. VHDLの符号付きと符号なしの両方の数値をどのように扱うことができますか?
- 29. 符号なし整数ニブルは、符号なし整数に圧縮されたバイナリとして扱われます
- 30. Eclipse CDT C++エラー
コード解析をオフにすることはありますか? 'Preferences-> C/C++ - > Code Analysis'(コンパイラが良い警告を出すので、私はいつもオフにしています) – Galik
残念なことにかなり大きなハンマーです。私が働いている間にリアルタイムでいくつかのエラーを見るのはとても便利です。私はコード分析設定の "無効な引数"の設定を "エラー"ではなく "情報"に変更しましたが、コンパイル時までエラーをマスキングするリスクもあります。 –
C++標準では、 'char'は、実装の裁量で、符号付きまたは符号なしの整数型として動作しますが、いずれの場合でも' signed char'と 'unsigned char'の両方とは異なる型です。つまり、 'unsigned char *'を 'char *'を期待する関数に渡すことは有効ではありません。あなたのコンパイラがこれを受け入れるならば、それはあなたのコンパイラによってサポートされている非標準の拡張であり、CDTはこれをサポートしていません。 – HighCommander4