读书人

定义一个有参宏MUABS(x)求参数兄弟

发布时间: 2012-05-07 12:40:40 作者: rapoo

定义一个有参宏MUABS(x),求参数兄弟绝对值。我写的这个程序对不。该如何改才好?
#define MYABS(x) (x=-x)
#include "stdio.h"
#include "conio.h"
void main()
{int x;
printf("input a numbers x=");
scanf("%d",&x);
if(x<0)
MYABS(x);
printf("x=%d\n",x);
getch();
}

[解决办法]
对的啊
[解决办法]
MYABS(x) ((x)=(x)>0?(x):(-(x)))
[解决办法]
#define MYABS(x) (x)=(-(x)) 宏里面的变量操作需要增加括号,以防止被修改或误操作


[解决办法]

C/C++ code
#include <stdio.h>#include <conio.h>#define MYABS(x) ((x)>=0?(x):(-(x)))void main() {    int x;    printf("input a numbers x=");    fflush(stdout);    if (1==scanf("%d",&x)) {        printf("MYABS(%d)==%d\n",x,MYABS(x));    }    getch();} 

读书人网 >C语言

热点推荐