#include <stdio.h>
#include <stdbool.h>
typedef enum{
False,
True
}Bool;
int main(int argc, char const *argv[])
{
int a = 1, d = 1;
Bool b = False, c = True;
Bool ans;
if (a == d)
{
ans = c;
}
else
{
ans = b;
}
printf("The answer is: %i \n", ans);
return 0;
}
我认为它只返回执行结果0或1。 我希望它从我创建的枚举中返回值。
答案 0 :(得分:3)
如果您希望它打印字符串true
或false
,则必须添加以下内容:
printf("The answer is: %s\n", ans ? "true" : "false");
答案 1 :(得分:2)
来自 C Standard,第6.7.2.2:2-3 节:
枚举器列表中的标识符被声明为类型为int和 可能在允许的任何地方出现。)带有=的枚举数定义了 枚举常量作为常量表达式的值。 如果第一个枚举数具有 否=,值...为0 。每个后续的枚举数,不含= 定义...的值... 在上一个枚举常量的值上加1 。
强调我的。
答案 2 :(得分:1)
在C
中,enum
只不过是int
类型,而对于那些int
的子集却带有特殊符号。另外,除非另行说明,否则第一个int
成员的隐式enum
值是0,第二个成员是1,依此类推。
%i
可用于打印占输出的int
。
尽管有惯用的方法使用预处理器,但在便携式C语言中无法显示实际的enum
令牌。