忍者ブログ
日記です.自分用のメモ代わりに書くことが多いです.
198 197 196 195 194 193 192 191 190 189 188
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

#define VERSION "0.1015a" // 現在のバージョン

とりあえず数多くdefineで宣言してある定数群をenumを用いて整理することで,

コンパイラの型チェック機能を利用するように変更.これはつまりこういう事↓.

int main()
{
enum { OFF = 0, ON = 1 } hoge;

hoge = 1;

return 0;
}

としたとき,コンパイラにhoge = 1;の部分で

「intを型~~(この場合は無名enum)に変換できません」って言われる.

キャストすればおkだけど.その場合はenumに名前が必要で
enum aho { OFF = 0, ON = 1 } hoge;
hoge = (enum aho)1;
みたいな感じで書けばいい.

enumにはtypdefも利用できるからこれを使えばさらに便利.

補足:enumの中では値の指定もできるが(OFF = 0みたいに),これは省略しても大丈夫.

省略した場合は順に0, 1, 2, …となる.俺はなんか気持ち悪いからいつも明示的に指定してるけど.

enumは複数のdefineを同時に宣言してるようなものだから使えばけっこう便利.(行数削減にもなる)



追記

enum型の変数は基本int型だが,ANDやORなどのビット演算をした場合,強制的にint型と見なされるようだ.

というか,元々Cの仕様がそうだったような気がする.

type |= INPUT;

とするとエラーが出たが,

type = (TYPE)(type | INPUT);

とすると通った.ちょっとめんどくさいがこのくらいは我慢するしかないか.
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
プロフィール
HN:
まさぽん
性別:
男性
職業:
会社員
最新記事
(08/22)
(08/16)
(08/08)
(08/01)
(07/30)
カウンター
ブログ内検索
最新コメント
[03/18 ひぐ]
[03/10 まさぽん]
[03/09 ボンボ-ン]
[03/07 まさぽん]
[03/07 まさぽん]
クリック募金
なかのひと
アクセス解析
忍者ブログ [PR]
≪PREV HOME NEXT≫