[解決済み】多文字の定数警告について
2022-02-23 20:21:02
質問内容
なぜ警告なのですか?意味不明な数値の代わりに複数文字のint型定数を使ったり、同じ値のconst変数を定義する方が分かりやすい場合が多いと思います。wave/tiff/その他のファイルタイプをパースするとき、読み取った値を対応する値ではなく、いくつかの 'EVAW' や 'data' などと比較する方がより明確です。
サンプルコードです。
int waveHeader = 'EVAW';
なぜ警告が出るのですか?
解決方法は?
規格によると (§6.4.4.4/10)
複数の文字定数を含む整数文字定数の値。 文字(例:'ab')、[...]は実装定義です。
long x = '\xde\xad\xbe\xef'; // yes, single quotes
これは有効なISO 9899:2011 Cであり、以下のように警告なしでコンパイルされます。
gcc
と
-Wall
で「複数文字定数」の警告が表示されます。
-pedantic
.
から ウィキペディア :
複数文字定数(例:'xy')は、ほとんど使われませんが、有効です。 これは、1つの整数に複数の文字を格納できるようにするものです。 ASCII 文字は 32 ビットの整数に、8 文字は 64 ビットの整数に収まります)。 文字を1つのintに格納する順番は決まっていません。 を指定する必要があるため、複数文字定数のポータブルな使用は困難である。
移植性のために、整数型に複数文字定数を使わないでください。
関連
-
[解決済み】構造体のベクター初期化について
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み] GCCで「文字列定数から'char*'`への非推奨の変換」という警告を消すにはどうしたらいいですか?
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
-
[解決済み] C++でPI定数を使用する方法
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】なぜ常にコンパイラの警告を有効にしなければならないのですか?
-
[解決済み】Rustで未使用のコードの警告を無効にする方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】構造体のベクター初期化について
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】C++の余分な資格エラー
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み】Enterキーを押して続行する
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較