Я пытался написать макрос SIGN, который возвращает либо -, либо +.
Однако он работает не так, как я ожидал, кто-нибудь знает, как это сделать?
#include <stdio.h>
#define ABS(x) (((x) < 0) ? (-(x)) : (x))
#define MAX(x,y) (((x) < y) ? (y) : (x)
#define MIN(x,y) (((x) < y) ? (x) : (y))
#define DIFF(x,y) (ABS(x-y))
#define SIGN(x) (((x) < 0) ? (-) : (+))
int main(){
int i = -45;
int j = -5;
printf("%c\n", SIGN(i) );
return 0;
}
Все остальные макросы работают, но с SIGN я получаю ошибку
"error: ожидаемое выражение перед ')" токен #define SIGN (x) (((x) <0)? (-): (+ )) "</p>