2014-01-25 2 views
0

나는 매크로를 정기적으로 사용하는 arcsynthesis OpenGL 튜토리얼을 통해 작업하고 있습니다. (즉, 내가 무엇을해야하는 경우 나) 수동으로 값을 채우지 않고 다음을 수행의 또 다른 방법이 있는지 궁금 해요 :C++의 쉼표가있는 전처리 매크로

#define GREEN_COLOR 0.75f, 0.75f, 1.0f, 1.0f 

const float vertexData[] = { 
    ..., //Vertex positions 

    GREEN_COLOR, 
    GREEN_COLOR, 
    GREEN_COLOR, 

    ..., //Rest of the colors 
} 
+0

이 매크로를 사용하여 수행하려는 작업은 아직 명확하지 않습니다. 그 값을 갖기 위해 배열 생성을 자동화하려고합니까? – JaredPar

+0

꽤 많은데, 여러 곳에서 편집하지 않고 녹색 값을 변경하는 단일 장소를 만듭니다. – bitrayne

+1

나는 내 머리 꼭대기에서 이것을 쉽게 할 수있는 방법을 생각할 수 없다. 매크로에 대한 걱정을 덜어주기 위해 vertexData가 선언 된 직후에 #undef GREEN_COLOR를 할 수 있습니다. 그런 식으로 그 목적을 수행하지만, 나중에 학대받을 수는 없습니다. – MicroVirus

답변

0

는 전처리 쉼표, 공백, 등을 걱정하지 않습니다. 그것은 다른 문자로 취급하고 텍스트 대체를 수행합니다. 조심해야 할 유일한 것은 개행이지만, 줄의 마지막에있는 \이 역시 처리됩니다. 예를 들면 다음과 같습니다.

#define GREEN_COLOR 0.75f,\ 
        0.75f,\ 
        1.0f, \ 
        1.0f 
+0

좋아, 아마도 매크로가 가장 잘 작동하는 시대 중 하나 일 것입니다. – bitrayne

+0

@bitrayne 거기에 부스트 소스 코드 헤더를 더 파고 들면 – texasbruce