Неверное преобразование из int в main () :: colors? - PullRequest
0 голосов
/ 11 июля 2011

Я новичок в C, и я читал концепции и примеры кода в книге под названием "Программирование на C в простых шагах".

Итак, я набираю в этом примере программу, символ для символа:

#include <stdio.h>
int main()
{
    /* declare a sequence of constants */
    enum colors
    { RED=1,YELLOW,GREEN,BROWN,BLUE,PINK,BLACK };

    /* Declare a variable of the enumerated data type */

    enum colors fingers;

    /* assign valid constants from the colors list */
    /* -----THIS IS THE ERROR LINE BELOW---------- */

    fingers = (enum colors) PINK + BROWN;


    /*-display the value in the variable */
    printf("Value: %d\n", fingers);

    return 0;
}

и я получаю эту ошибку:

13 C:\Users\mjohearn\Documents\pet projects\constant types NOT WORKING\enumtypes.cpp invalid conversion from `int' to `main()::colors'

По какой-то причине компилятор не распознает fingers.

Если бы кто-нибудь мог помочь мне решить эту проблему, я был бы очень признателен.

1 Ответ

1 голос
/ 11 июля 2011

Попробуйте

fingers = (enum colors) ( PINK + BROWN ) ;

Я считаю, что оператор приведения связывается более плотно, чем оператор сложения.

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