0


ALL_MODULE の結果を知っていますか?
この状況を説明している本を知っていますか?
どうもありがとう。:)

typedef enum
{
  MODULE0,
  MODULE1,
  MODULE2
}MODULE_TAG;

#define ALL_MODULE (MODULE_TAG-1)
4

2 に答える 2

4

定義はおそらく少し異なっていたと思います:
#define ALL_MODULE ((MODULE_TAG)-1)

例えば

#include <stdio.h>

typedef enum
{
  MODULE0 = 1,
  MODULE1 = 2,
  MODULE2 = 4
}MODULE_TAG;

#define ALL_MODULE ((MODULE_TAG)-1)

int main(){
    MODULE_TAG all = ALL_MODULE;
    MODULE_TAG amod = MODULE1;

    if(amod == MODULE1){
        printf("amod equal MODULE1\n"); 
    }
    if(amod != MODULE1){
        printf("amod not equal MODULE1\n"); 
    }

    if(all & MODULE0){
        printf("all has MODULE0\n");
    }
    if(all & MODULE1){
        printf("all has MODULE1\n");
    }
    if(all & MODULE2){
        printf("all has MODULE2\n");
    }
    return 0;
}
于 2013-04-19T14:48:05.290 に答える
1

列挙型 typedef に値がありません。式で ALL_MODULE を使用すると、コンパイル エラーが発生します。

于 2013-04-19T14:36:08.663 に答える