본문 바로가기

C14

type redefinition 오류 해결법 C나 C++ 프로그램을 짜다보면 이런 저런 해더 파일을 인클루드 하게 되고 그러다보면 한번씩 'struct' type redefinition 이나 'class' type redefinition 어쩌구 하면서 에러가 발생할 때가 있다. 이런 경우 에러 내용 그대로 타입이 재정의 되었다는 얘기인데 이것은 일반적으로 아래 그림과 같은 경우에 발생한다. 그림에서 처럼 A.h 파일에 어떤 클래스나 타입을 정의해 놓았을 때 그 타입을 이용하기 위해 B.h 와 C.h에서 A.h를 인클루드하게 되고 D.c에서는 B.h와 C.h가 필요해서 둘을 인클루드하게 된다. 이런 경우 A.h 에서 정의한 타입을 D.c에서는 같은 내용을 두번 사용하게 되는 것이므로 이로 인해서 type redefinition이 발생하는 것이다. C.. 2009. 2. 11.
LValue 와 RValue 차이점 LValue 와 RValue 차이점에 대해서 알아보자 1. LValue 는 의미그대로 왼쪽에 있는 의미합니다. A = B 일때 A는 LValue 가 되고, RValue 는 B 가 됩니다. LValue 에 올수 있는것은 변수가 올수 있고, 상수는 올수 없습니다. RValue 에는 변수, 상수값이 올수 있습니다. C 언어에서 배열명은 상수주소 이므로 LValue 에 올수 없습니다. ex)char c_arr [10]; c_arr = "12345"; 사용할수 없구요, strcpy를 이용해서 값을 처리하게 됩니다. 스트링함수 또는 메모리관련 (memcpy)등을 이용해서 처리한다. [출처] LValue 와 RValue 값에 대해서 |작성자 gangi000 2009. 2. 10.