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
'소프트웨어 > C' 카테고리의 다른 글
scanf속에 표현식을 넣는 경우, scanf가 무시될 수 있다. (0) | 2015.07.29 |
---|---|
파일 입출력, 전체 파일 메모리 복사해놓기 (0) | 2015.07.01 |
struct 선언하면서 할당하기(?) _ struct의 이상한 모양 분석 (0) | 2015.06.10 |
엔터(enter,개행문자) 입력받기. (0) | 2015.01.26 |
개행문자 입력받기. (0) | 2015.01.16 |