#define
지시어에 정적 변수를 선언 할 수 있습니까? 내가 다른 파일에이 헤더 파일을 포함하고 액세스 Foo::TEXT[]
하려고 할 때 컴파일러는 const 정적의 char *를 해결할 방법#define 지시문의 정적 변수
// header file
#define TEXT_ENUM
#ifdef TEXT_ENUM
#define TEXT_HANDLING_MACRO \
static const char * TEXT[]; \
static const char * getText(int _enum) { \
return TEXT[_enum]; \
}
#else
#define TEXT_HANDLING_MACRO
#endif
struct Foo {
TEXT_HANDLING_MACRO
};
// cpp file
#include "foo.h"
const char * Foo::TEXT[] = {
"ONE",
"TWO",
"THREE",
0
};
.
당신이'푸하셨습니까 :: 텍스트 []'? 그때 작동합니다. –
'Packet :: TEXT '오류에 대한 정의되지 않은 참조를 얻습니다. – has
@has : 즉, .cpp 파일이 없습니다. 위에서 제공 한 'Packet :: TEXT'는 완벽하게 정의되어 있습니다. – AnT