[bo][un]hxlou520[/un] 在 2008-9-18 17:51 的发言:[/bo]
#include
#define Y {char c;while(c=getchar()!='\n');} /* 引用廣陵*/
int main(void)
{
char h;
scanf("%c",&h);
while(h!='g')
{
printf("%c",h);
Y; /*清除鍵盤緩 ...
= =大哥你到底知不知道我们在讨论什么?
[bo][un]woshiyun[/un] 在 2008-9-18 17:55 的发言:[/bo]
#define Y {char c;while(c=getchar()!='\n');} /* 引用廣陵*/
不得不说一句,这种定义很有问题。
if()
Y;
else
X;
就是错误。
正确的是
#define Y do{...}while(0)
#define Y ....本身就是一个不好的习惯,对于“类函数”的宏,就算是没有参数也必须加一对小括号:
#define ClearInputBuffer() \
do \
{ \
int _ch; \
while ((_ch = getchar()) != '\n' && _ch != EOF) \
; \
} while(0)
[[it] 本帖最后由 StarWing83 于 2008-9-18 18:00 编辑 [/it]]