定义一个有参宏MUABS(x),求参数兄弟绝对值。小弟我写的这个程序对不。该怎么改才好

定义一个有参宏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();
}