소프트웨어/C
[에러 리뷰] error: expected ‘,’ or ‘...’ before ‘this’
개발자_이훈규
2015. 5. 7. 12:05
c++에서 컴파일 할때 혹시
error: expected ‘,’ or ‘...’ before ‘this’
이런 에러가 나온다면,
그리고 c언어와 cpp의 파일으로 작업하고 있다면 의심해볼 만 하다.
이 문제는 c언어와 cpp의 예약어의 차이에서 오는 것이다.
즉, c언어로 만들어서 이상 없는 소스를 cpp로 컴파일 시키면 에러가 나올 수 있는 것이다.
예제는 아래와 같다.
struct Something {
char *value;
char class[20]; // Bad code!!
};
위 코드는 c언어로는 이상이 없는 코드지만 cpp에서는 에러를 내뿝는 코드이다.
즉 이런 경우에는 해결방법은 크게 3가지 정도이다.
1. 소스의 컴파일을 c언어로 한다.
2. cpp의 예약어를 사용하지 않는다.
3. 아래와 같은 형식으로 변경한다.
#ifdef __cplusplus
extern "C" {
void aFunc(int);
}
#else
void aFunc(int this);
#endif