ALL_MODULE の結果を知っていますか?
この状況を説明している本を知っていますか?
どうもありがとう。:)
typedef enum
{
MODULE0,
MODULE1,
MODULE2
}MODULE_TAG;
#define ALL_MODULE (MODULE_TAG-1)
ALL_MODULE の結果を知っていますか?
この状況を説明している本を知っていますか?
どうもありがとう。:)
typedef enum
{
MODULE0,
MODULE1,
MODULE2
}MODULE_TAG;
#define ALL_MODULE (MODULE_TAG-1)
定義はおそらく少し異なっていたと思います:
#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;
}
列挙型 typedef に値がありません。式で ALL_MODULE を使用すると、コンパイル エラーが発生します。