我有以下的代码:的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