我无法弄清楚为什么下面的代码无法按预期方式运行。 两者都编译成执行文件。在C代码中的if&switch语句中的意外输出
输出:
a.out , prints 1, expected "no value"
a.out 1, prints 2, expected 1
a.out 2, prints 2, expected 2
使用情况:
void main(int in)
{
int a = in ;
printf("In function if\n");
if (in == 1)
printf("1\n");
else
if (in == 2)
printf("2\n");
else
printf("wrong value\n");
}
使用switch:
void main(int in)
{
switch(in)
{
case 1: printf("1\n"); break;
case 2: printf("2\n"); break;
default: printf("wrong value\n"); break;
}
};
我试图让C代码以下LISP功能:
(cond ((= in 1) 1)
((= in 2) 2)
(t nil))
感谢您的协助。
'无效的主要(int类型)'在C.我不知道是非法的不了解Lisp,你想达到什么目的?具体来说,你期望'in'来自命令行参数还是标准输入? – 2014-11-21 05:57:26
我试图让case语句像预期的那样行为。 – Dan 2014-11-21 06:04:08
我似乎从案例和if语句中得到了错误的答案。我在代码中用int替换了void,并且没有改变。我不希望返回值只是为了输出正确的行。这只是测试代码,看看我能否得到它的工作 – Dan 2014-11-21 06:12:30