본문 바로가기

[c] ASKII 코드 출력 #include #include int main() { char ch; while(1) { printf("문자 "); ch = getch(); ch = getch(); printf("%c 아스키값 %d\n",ch,ch); } } 더보기
[ Error LNK2019 ] Link Error 발생시 확인해볼 것들 컴파일러가 알려주는 Error 중에서 가장 싫어하는 것이 무엇이냐고 묻는다면, 나는 서슴없이 LNK2019라고 대답할 것이다. 이것만큼 짜증나는 에러가 별로 없다. 보통 이 에러는 셋팅을 잘못해서 생기는 경우가 대부분이므로 발생할때마다 그 상황에 맞추어서 무엇이 문제인지를 찾아내야 한다. 프로그래밍 언어 문법 틀리는 것을 해결하는 것처럼 "일반적인 해결책"이 존재하지 않는다는 점이 이 에러가 싫은 가장 큰 이유이다. (정말 싫어 ㅠ_ㅜ) 결국 case by case 로 문제를 해결해야 하기 때문에 이제 생각날때마다 또는 LNK2019 에러를 맞을 때마다 이 포스트에 추가하겠다. 아래는 LNK2019 에러가 떳을 때 점검해보는 것이 좋은 셋팅들이다. 1. LIB 파일을 추가하지 않았는지 확인해보라! 필요한.. 더보기
Template 코드의 선언과 정의는 하나의 파일에 넣자! 일반적인 함수는 '선언(declaration)'과 '정의(definition)'를 파일로 분리하여 컴파일할 수 있다. 이렇게 하면 좋은 점은 컴파일 시간을 줄일 수 있다는 것이다. 하지만 Template를 사용할 경우에는 그렇지않다. Template을 사용하여 구현한 코드는 '선언'과 '정의'를 같은 파일에 넣어야 한다. 왜냐하면 실제로 Template을 사용하는 시점에서 코드가 인스턴스화되기 때문이다. 즉, 사용된 시점에서 컴파일러가 '선언'뿐만이 아니라 '정의'까지 알아야하기 때문이다. 그렇다면, 정말로 파일로 분리하여 구현하는 방법은 없는 것일까? 아니다. 실제로는 아주 간단하게 해결할 수도 있다. Template를 사용하는 파일에서 선언이 있는 파일(.h 파일)과 정의가 있는 파일(.cpp 파일).. 더보기