• 締切済み

enumの基礎

下記のソースをenumを使わずに定義するとどのようになるんですか? 下記のソースの意味が分かるように教えてください。 enum {FALSE, TRUE} i = FALSE;

みんなの回答

  • gimmick
  • ベストアンサー率49% (134/270)
回答No.2

「enum {FALSE, TRUE} i = FALSE;」は enum BOOL {FALSE, TRUE}; enum BOOL i = FALSE; と同じ事です。(列挙型に名前をつけない点が違いますが。) また、「{FALSE, TRUE}」を「{FALSE = 0, TRUE = 1}」としても同様です。 >下記のソースをenumを使わずに定義するとどのようになるんですか? #define FALSE 0 #define TRUE 1 int i = FALSE; としたらいいと思います。intが嫌だったら typedef int BOOL; とでもしてください。 #こんな質問するくらいだからC++ではないんだろうと考え、bool型には触れませんでした。

  • honiyon
  • ベストアンサー率37% (331/872)
回答No.1

こんにちは、honiyonです。  全く同じ、というわけにはいませんが・・・ その1  bool i; i = FALSE; その2  #define _TRUE 0 #define _FALSE 1 int i; i = _FALSE; ※TRUE/FALSEは標準で定義されているので先頭にアンダーバーをつけてます。  参考になれば幸いです(..

Slihpon
質問者

お礼

この1つ上の質問はSetEndOfFileで解決しました。

Slihpon
質問者

補足

ありがとうございます。 もう少し教えてください。 #define sin 0 #define gi 1 上記は enum {sin = 0, gi = 1}; と同じですか? enum {sin = 0, gi = 1}; int i = sin; を1行で書いたものが enum {sin = 0, gi = 1} i = sin; ですか?

関連するQ&A

  • enumの書き方でエラーが出ます。

    VB2008で開発しています。 enumの設定で下記のような設定をしたいのですが、 Public Enum aaaaa bbbbb = 2 ccccc = 1 Single = 0 End Enum Single = 0 の箇所でエラーが出てしまいます。 Singleのような規定名のものを定義する やり方を教えて頂けませんでしょうか? よろしくお願いします。

  • VB.NETでのEnumの使用について

    こんにちは、いつも拝見させて頂いております。 今回は、VB.NETのEnumについて教えて頂ければと思い、投稿しました。 VB.NETでEnum定義をしているのですが、クラス内のEnumとして定義 しているのですが、そのクラスのインスタンスを生成しなくても クラス内のEnum定義が参照できます。 クラスのインスタンスを生成していないのであれば、そのクラス内に あるEnum定義も参照できないのではないかと考えていたのですが、 参照できたので、なぜなのかがわかりません。 自分なりに色々と調べたのですが、EnumがSystem.Enumを継承している というのはわかりましたが、それがなぜ、クラスのインスタンスを生成 しないで、クラス内のEnum定義が参照できることになるのかがわかりません。 言語は、VB.NET2005です。 一応、ここの質問一覧も検索してみたのですが、該当しそうなもの が見当たらなかったので、ここに投稿させてもらいました。 お忙しいところ、申し訳ありませんが、ご教授ください。

  • enumの使い方

    はじめまして。 J2SE5.0で導入されたenumキーワードですが、 http://oshiete1.goo.ne.jp/qa2252664.htmlの質問で定義方法は把握できたのですが、実際にどういったプログラムで使用するのでしょうか? いまいち実用性がイメージできないのでお願いします。

    • ベストアンサー
    • Java
  • typedef enumの使い方を教えてください

    enumもtypedefも知っていますが下記コードのような typedef enumを使用したものがどういった場面で有効なのかを簡単な具体例を使って教えてください。 enum {     E1,     E2 } E; typedef enum {     e1,     e2 } e; 特に前者と後者を使いを分ける状況の違いについて教えてください。

  • mysqlのenum

    mysqlでenum型の値に対応するインデックスを取り出すのはどうしたらよいでしょうか。 例) テーブル1の要素定義:enum("0ne","Two") テーブル1に入っているデータ 行1:"One" 行2:"Two" やりたいこと: SELECTで"One"という値を取り出して、そのインデックス(この場合は1)を知りたいのです。 よろしくお願いいたします。

  • C言語におけるenum型

    enum word{apple banana orange}; enum word w; と定義します。 scanfなどでキーボード入力から"apple"などを入力したとします。 この入力文字を変数wに格納(列挙型 で定義されている整数値を格納)するには どのようにしたらいいですか?

  • ifdefとenum

    enum { INDEX_A = 0, INDEX_B, INDEX_C, INDEX_END }; #ifndef INDEX_END #define INDEX_END 10 #endif enum{}文で定義した名前は#ifndef,#ifdef文の対象外でしょうか?

  • jsでフラグ型をenum型に変えたい。

    以下のjavascript文があります。 [code] //平日ダイヤか土・休日ダイヤかを判定する function dayJudge(year, month, date, day) { //alert(year +" "+ month +" "+ date +" "+ day) //フラグ var weekdayFlag = true; //月?金なら立てる if(day >= 1 && day <= 5) weekdayFlag = day >= 1 && day <= 5;   else if(day==6) weekdayFlag2 = day == 6 else weekdayFlag = false; //祝日ならたおす if(year == 2013 && month == 1 && date == 1) weekdayFlag = false; else if(year == 2013 && month == 10 && date == 14) weekdayFlag = false; else if(year == 2015 && month == 3 && date == 21) weekdayFlag = false; return weekdayFlag; } [/code] をフラグ型から、enum型に変更できませんか。 フラグではAもしくはBといった2通りの回答しかございませんので、 3つめの分岐は作ることはシステム上無理なのです。 enum型なら、パターンはある程度余裕(無限じゃないかも)をもたせることできるからです。

  • enumについて

    Java2 5.0で「enum」という列挙型が導入されてそうですが、 意味がよくわかりません。 今までは、interface等に (1) public final static int a = 0; public final static int b = 1; public final static int c = 2; などと、指定してきましたが、enumを使う事で、型に”安全”に なると書かれていますが、それもよくわかりません。 ”列挙値は、整数ではない”とも見たりしますが、(1)のよな使い方 をしなくなるのでしょうか。 いつどのような使い方するのか、どなたかご教示ください。 また、私のようなものに、合うようなサイトがあれば、教えてください。 宜しくお願いします。

  • enumをintとして扱う必要があるパターンはあるのでしょうか。

    enumをintとして扱う必要があるパターンはあるのでしょうか。 よく enum ENUM_SAMPLE {  A,  B,  C, }; class CLASS_SAMPLE { private:  int type; // ENUM_SAMPLEのA,B,Cしか入らない public:  int GetType(){ return type; } }; という記述を良く見かけます。 class CLASS_SAMPLE { private:  ENUM_SAMPLE type; // ENUM_SAMPLEのA,B,Cしか入らない public:  ENUM_SAMPLE GetType(){ return type; } }; のほうが良いのではないか思うのですが、intで定義することによる利点が何かあるのでしょうか。 あと、過去に // bcc利用時に問題があるのでintに変更しました int CLASS_SAMPLE::GetType {  return type; } というコメントがついたソースを見たことがあり、 自分でbccを使ってenumを返すように修正してテストしてみたことがあるのですが、何が問題なのか見つけることが出来ませんでした。 enum名を直接使用した場合に問題が発生することがあるのか、またどのような問題が発生することがあるのか、回答お願いします。