s******y 发帖数: 613 | 1 【 以下文字转载自 biojailbreak 俱乐部 】
发信人: szbiophy (szbiophy), 信区: biojailbreak
标 题: 问个 enum{}的问题 谢谢
发信站: BBS 未名空间站 (Fri Sep 12 15:32:09 2014, 美东)
目标 写个.c 的文件(e.g. playgame.c)
这个.c 文件只有一个funtion, 没有main fn
这个是个掷色子的游戏,掷到6就赢,1就输,其他就 recursive 掷 直到输活赢
(掷色子还有另一个 function)
我的问题是 如果用 enum status { continue, won, lost }; 定义了 3个status
可以用 status 作为返回值吗? 如
status playgame()
{
} | l**********n 发帖数: 8443 | 2 enum Foo { BAR, BAZ };
enum Foo testFunc(void)
{
return BAR;
}
Or, with a typedef:
typedef enum Foo { BAR, BAZ } Foo;
Foo testFunc(void)
{
return BAR;
} | d****i 发帖数: 4809 | 3 Sure you can return enum type. In C, you need to do this like:
enum status playgame()
{
}
or otherwise you would need to typedef first:
typedef enum {CONTINUE, WIN, LOSE} status;
【在 s******y 的大作中提到】 : 【 以下文字转载自 biojailbreak 俱乐部 】 : 发信人: szbiophy (szbiophy), 信区: biojailbreak : 标 题: 问个 enum{}的问题 谢谢 : 发信站: BBS 未名空间站 (Fri Sep 12 15:32:09 2014, 美东) : 目标 写个.c 的文件(e.g. playgame.c) : 这个.c 文件只有一个funtion, 没有main fn : 这个是个掷色子的游戏,掷到6就赢,1就输,其他就 recursive 掷 直到输活赢 : (掷色子还有另一个 function) : 我的问题是 如果用 enum status { continue, won, lost }; 定义了 3个status : 可以用 status 作为返回值吗? 如
| s******y 发帖数: 613 | 4 好用了 谢谢
再多多问下
status gamestatus; //
如果return gamestatus=WON 想把 won 打印出来 可以吗?
我试了 printf("%c\n", gamestatus); 什么都没打印
试了 printf(“% s\n",gamestatus); 结果是报错
所以 我觉得是不是 enum status {apple, orange } 只能当flag 用了 不能当字符串
用了 | s******y 发帖数: 613 | 5 enum status{ WON, LOST}
结果:
if gamestatus==WON, print(%d\n",gamestatus); -> 0
gamestatus==LOST, ~~~~~~~~~~~~~~~~~~~ ; -> 1
谢谢 |
|