gcc では、より小さい整数型に定数を加算または減算するint
と、int
.
#include <cstdint>
#include <cstdio>
int main()
{
int8_t wat = 5;
printf("%zd\n", sizeof(wat + 1));
return 0;
}
4 を与えます。単純な+=
ステートメントを-Wconversion
. その警告フラグが設定された状態で、
#include <cstdint>
int main()
{
int8_t wat = 5;
wat += 5;
return 0;
}
与える
wat.cpp:7:6: 警告: 'int' から 'int8_t {aka signed char}' への変換により、その値が変更される可能性があります [-Wconversion]
この警告を抑制する方法はありますか? なぜこれが起こっているのですか?キャスティングはうまくいかないようです。