2009-12-26 2 views
0

좀 연산자를 열거하기 위해 노력하고있어에서, 내 코드 라인은 다음과 같습니다문제, +와 같은 사업자에 대한 열거를 사용하는 동안 - C

내가이 줄을 컴파일하기 위해 노력하고있어
enum operations{+=4,-,%,<,>} 

, GCC는 말한다 : 예상 '+'토큰 앞에 식별자가 있습니까?

그래서 어떻게 이러한 연산자를 열거 할 수 있습니까? 우리는 그들을 위해 몇 가지 이스케이프 문자를 사용할 수 있습니까? 당신이 할 수없는,

enum Operations 
{ 
    Plus=4, 
    Minus, 
    Mod, 
    LessThan, 
    MoreThan 
} 

답변

7

가장 좋은 방법은이 같은 것입니다. 어떤 식별자와 마찬가지로 이름을 지정해야합니다.

enum operations 
{ 
    PLUS = 4, // + 
    MINUS, // - 
    MOD,  // % 
    LESS,  // < 
    GREATER // > 
}; 
3

번호 :

2

열거 형은 값이 정의 된 식별자 목록입니다. 식별자의 이름으로 +, =, <,> 등의 문자를 사용할 수 없습니다.

당신은 같은 이름 철자해야합니다 :

enum Operators 
{ 
    Plus, 
    Equals, 
    LessThan, 
    GreaterThan 
} 
4

열거 형이 식별자해야, 당신은 베어 기호를 사용할 수 있습니다. 따라서

enum operations { inc_by_4, minus, modulus, less_than, greater_than }; 

이 효과가 있습니다. (나는 당신이 표현하고 싶은 것을 추측하고 있습니다. 아마도 그럴 것입니다. 그러나 그것은 짐작의 본질입니다.)

당신이 실제로하고 싶은 것을 우리가 말할 수 있다면 아마도 우리는 당신을 더 잘 대답 할 수 있습니다.

+0

내가 + = 4를 잘못 읽은 것 같지만, 그때 ... 내 C는 분명히 녹슬 었습니다. ;-) 흥미로운 점은,이 몇 가지 예제에서 볼 수있는 다양한 스타일이 있다는 것입니다. (그리고 ... 실제 코드에서는 한 줄 이상으로 퍼져있을 것입니다.하지만 파이썬은 그렇지 않습니다. 어쨌든 enums을 가지고 ;-)) –

+0

나는 당신이 그것을 잘못 읽은 것 같지 않습니다. '+ = 4'를 * 4 씩 증가 시키면 완전히 합리적인 해석이됩니다. – wallyk

1

는 또한, 코드

enum operations{+=4,-,%,<,>}

의 순서 +=가 + = 대입 표현식 연산자로 해석됩니다 고려하시기 바랍니다. 이것은 += 사이에 공백을 삽입하면 도움이 될 수 있습니다.이 경우에만 다른 컴파일러 오류가 발생합니다.

관련 문제