mbedでソースを書いているのだが、引数がenumで、一応範囲チェックをしようとした。
こんな感じ。
enum EnumKuma {
FIRST,
SECOND,
THIRD
};
int Func(EnumKuma kuma)
{
if ((kuma < FIRST) || (THIRD < kuma)) {
return -1;
}
・・・
そうすると、「kumaは0より小さくなることはない」みたいな警告が出てくる。
あれ、enumってint型扱いじゃないんだっけ?
Signedness of enum in C/C99/C++/C++x/GNU C/GNU C99 - Stack Overflow
整数型ではあるが、符号についてはコンパイラ依存とのこと。
ほほぅ、そうだったのか。
ARMのコンパイラ(armccかな?)では、一番小さい符号型にあわせられるらしい。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。