본문 바로가기

Daniel's Blog180

[c] ASKII 코드 출력 #include #include int main() { char ch; while(1) { printf("문자 "); ch = getch(); ch = getch(); printf("%c 아스키값 %d\n",ch,ch); } } 2014. 1. 23.
[ Error LNK2019 ] Link Error 발생시 확인해볼 것들 컴파일러가 알려주는 Error 중에서 가장 싫어하는 것이 무엇이냐고 묻는다면, 나는 서슴없이 LNK2019라고 대답할 것이다. 이것만큼 짜증나는 에러가 별로 없다. 보통 이 에러는 셋팅을 잘못해서 생기는 경우가 대부분이므로 발생할때마다 그 상황에 맞추어서 무엇이 문제인지를 찾아내야 한다. 프로그래밍 언어 문법 틀리는 것을 해결하는 것처럼 "일반적인 해결책"이 존재하지 않는다는 점이 이 에러가 싫은 가장 큰 이유이다. (정말 싫어 ㅠ_ㅜ) 결국 case by case 로 문제를 해결해야 하기 때문에 이제 생각날때마다 또는 LNK2019 에러를 맞을 때마다 이 포스트에 추가하겠다. 아래는 LNK2019 에러가 떳을 때 점검해보는 것이 좋은 셋팅들이다. 1. LIB 파일을 추가하지 않았는지 확인해보라! 필요한.. 2014. 1. 23.
Template 코드의 선언과 정의는 하나의 파일에 넣자! 일반적인 함수는 '선언(declaration)'과 '정의(definition)'를 파일로 분리하여 컴파일할 수 있다. 이렇게 하면 좋은 점은 컴파일 시간을 줄일 수 있다는 것이다. 하지만 Template를 사용할 경우에는 그렇지않다. Template을 사용하여 구현한 코드는 '선언'과 '정의'를 같은 파일에 넣어야 한다. 왜냐하면 실제로 Template을 사용하는 시점에서 코드가 인스턴스화되기 때문이다. 즉, 사용된 시점에서 컴파일러가 '선언'뿐만이 아니라 '정의'까지 알아야하기 때문이다. 그렇다면, 정말로 파일로 분리하여 구현하는 방법은 없는 것일까? 아니다. 실제로는 아주 간단하게 해결할 수도 있다. Template를 사용하는 파일에서 선언이 있는 파일(.h 파일)과 정의가 있는 파일(.cpp 파일).. 2014. 1. 23.
[c] IP Setting - IP address 구조체 struct sockaddr_in { unsigned short sin_family; /* address family (always AF_INET) */ unsigned short sin_port; /* port num in network byte order */ struct in_addr sin_addr; /* IP addr in network byte order */ unsigned char sin_zero[8]; /* pad to sizeof(struct sockaddr) */ }; SOCKADDR_IN servAddr { memset(&servAddr, 0, sizeof(servAddr)); servAddr.sin_family = AF_INET; servAddr.si.. 2014. 1. 23.
[c] File 입출력 첫번째는 파일을 여는 방법입니다.파일을 열기 위해서는FILE *fopen(char *filename, char *mode);위와같이 fopen()함수를 사용해서 파일을 열게 됩니다.두번째 인자인 mode가 어떤의미인지 궁금하실텐데요.지금부터 텍스트 파일 모드의 종류를 표를 통해 설명해 드리겠습니다. 다음은 이진 파일 모드의 종류 입니다. 파일이 정상적으로 열리면 fopen()함수는 파일 포인터를 반환합니다.만약에 함수가 열기를 실패하면 널 포인터를 반환한다는 점 반드시 기억해 두시기 바랍니다.다음은 파일을 읽고 쓰는 방법에 대해 알아보겠습니다.파일을 읽고 쓸때는 파일 입출력 함수를 사용합니다. 마지막으로 파일을 닫는 방법입니다.함수는 fclose()를 사용합니다.int fclose(FILE *fp);형식.. 2014. 1. 23.
[c,c++] malloc 와 new 의 차이 우리는 C에서 메모리를 할당할 경우 malloc 함수를 통해 동적 메모리 할당을 한다.그리고 c++에서는 메모리 할당하는 경우로 new를 사용하여 편리하게 메모리를 할당 할 수 있다. malloc의 함수 사용 -> void *malloc(size_f size);위의 형태가 원형인 함수로서 size에 주어진 만큼의 byte수를 갖는 메모리 공간을 동적으로 할당하여 메모리 주소를 포인터 방식으로 리턴 해주는 함수이다. 사용법은int n= 갯수;int* pA = (int*) malloc(sizeof(int)*n);와 같이 쓰인다.sizeof(int)가 입력됨으로써 4byte의 크기(자료형의 크기)를 지시해주고malloc은 void*형으로 리턴값이 나오기 때문에 int*형으로 형변환을 해줌으로써 int*형 변수.. 2014. 1. 23.