回答編集履歴
1
追記
answer
CHANGED
@@ -2,4 +2,12 @@
|
|
2
2
|
|
3
3
|
恐らく、bufR[i]はchar型ですね?
|
4
4
|
コンパイラがgccやVC++でしたらchar型はsignedです。その場合、char型が取りうる値は-128~127です。
|
5
|
-
それに対して0xC0は192です。-128~127の範囲外なので`bufR[i] == 0xC0`という比較は常にfalseになると警告してくれているのです。
|
5
|
+
それに対して0xC0は192です。-128~127の範囲外なので`bufR[i] == 0xC0`という比較は常にfalseになると警告してくれているのです。
|
6
|
+
|
7
|
+
---
|
8
|
+
【追記】
|
9
|
+
対策は、bufR[i]をunsigned char型で定義できるならそれが好ましいです。
|
10
|
+
ただ、bufRを渡す他のAPI等で型違いエラーが多発する場合があります。そんな場合は、下記のように定義することも考えられます。
|
11
|
+
|
12
|
+
> static const char foo_const=static_cast<char>(0xc0);
|
13
|
+
> if (bufR[i] == foo_const)
|