我無法弄清楚爲什麼下面的代碼無法按預期方式運行。 兩者都編譯成執行文件。在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