Ошибка функции Marco, ожидаемые спецификаторы объявления или «...» перед маркером «{» - PullRequest
0 голосов
/ 28 мая 2018

Я пытался написать эту функцию, используя макросы

unsigned int put_0_right(unsigned int value, int order)
    {
        int i;
        for(i=0; i<order; i++)
            value=clear_bit(value,i);
        return value;
    }

, поэтому я написал это

#define unsigned int mettre_0_droite(value, order)(\
                            {\
                            int i=0;\
                            for(i=0; i<order; i++)\
                                {value=clear_bit(value,i);}\
                            return value;\
                            })

, но я получаю эту ошибку ожидаемые спецификаторы объявления или '... 'before' {'token

1 Ответ

0 голосов
/ 28 мая 2018

задача, вероятно, состоит в том, чтобы сделать что-то вроде этого.

#define mettre_0_droite(value, order) ((value) & (~((1ul << ((order) + 1)) - 1)))

вместо циклов

И если вы не понимаете разницу между функцией и макросом, вам нужен хороший Cкнига.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...