枚举声明错误

2024-02-11

我有一个非常简单的c代码:

         #include<stdio.h>
        int main()
        {
          enum boolean{true,false};
          boolean bl=false;
          if(bl==false)
             printf("This is the false value of boool\n");
         boolean bl1=true;
          if(bl1==true)
           {
            printf("This is the true value of boool\n");
           }
    return 0;
   }

我只是想用enum类型变量。但它给出以下错误:

tryit4.c:5: error: ‘boolean’ undeclared (first use in this function)
tryit4.c:5: error: (Each undeclared identifier is reported only once
tryit4.c:5: error: for each function it appears in.)
tryit4.c:5: error: expected ‘;’ before ‘bl’
tryit4.c:6: error: ‘bl’ undeclared (first use in this function)
tryit4.c:8: error: expected ‘;’ before ‘bl1’
tryit4.c:9: error: ‘bl1’ undeclared (first use in this function)

我看不出有什么理由。您能解释一下这可能是什么原因吗?


在 C 中,有两种(实际上更多,但我保留它)类型的命名空间:普通标识符和标签标识符。结构体、联合体或枚举声明引入了标签标识符:

enum boolean { true, false };
enum boolean bl = false;

从中选择标识符的命名空间由周围的语法指定。在这里,它前面加上一个enum。如果要引入普通标识符,请将其放在 typedef 声明中

typedef enum { true, false } boolean;
boolean bl = false;

普通标识符不需要特殊语法。如果您愿意,您也可以声明一个标签和普通标签。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

枚举声明错误 的相关文章

随机推荐