我有以下的代碼:的typedef參數和功能
#include <stdio.h>
typedef char km_ph;
typedef double nnew;
int printme(km_ph b){
printf ("%c %d\n", b,b);
return 0;
}
int main() {
km_ph a = 'o';
nnew b = 100.09;
printme(9);
printme(a);
printme(b);
return 0;
}
我預期printme(b)
和printme(9)
拋出某種類型的警告或錯誤的自b
類型不是可以傳遞參數的類型到printme
。 printme
預計km_ph
類型,或至少char
類型。我得到以下輸出:
9 0 111 d 100
爲什麼會發生這種情況?
啓用所有推薦的警告! C並不妨礙你拍攝你的腳,但是現代編譯器可以增強這種缺陷。 – Olaf
@Olaf,沒有幫助。或者我錯過了一些? http://coliru.stacked-crooked.com/a/7a4f676d7809551e – StoryTeller
關於「**所有**推薦警告」的含義尚不清楚?如何閱讀你的編譯器的文檔? (你沒有說明你使用的是哪一個!) – Olaf