Я делаю программу, которая сдвигает значения влево или вправо в зависимости от значения второго аргумента. Если он положителен, он сдвигается влево, иначе он сдвигается вправо. N - количество сдвигов влево или вправо. У меня возникают проблемы с выполнением моих макросов.Использование инструкций препроцессора для макросов в C
#include <stdio.h>
#define SHIFT(value, n)
#if (n) > 0
(unsigned int value) <<= (int n);
#else
((unsigned int value)) >>= (int -n);
int main()
{
printf("%d\n", SHIFT(1, 4));
}
В настоящее время я получаю условную ошибку.
Попробуйте '#define SHIFT (значение, п) \'. Обратная косая черта в конце указывает, что следующая строка является частью текущей строки. –