C++7 [C언어] 파일 분리(분할)하기 들어가며 프로그래밍 할 때 main 함수에 모든 코드를 넣어서 코딩하면 소스 코드가 길어져서 보기 힘들어진다. 이를 위해서 함수로 만들어서 재사용성을 높이고 간결하게 관리하는데, 이 마저도 함수가 많아지면 파일이 길어지고 관리하기 힘들어진다. 그래서 파일을 분리하여 보지 않아도 되는 부분을 함수로 만들어 보관하여 투명성과 직관성과 간결성을 높인다. 원래 이런 파일이 있었다고 가정하자. #include void foo(); int main(void) { foo(); return 0; } void foo() { printf("Hello world!\n"); } 동작은 아주 간단하게 작성하였다. 콘솔에 Hellow world!(줄바꿈)를 출력하는 프로그램인데 printf문만 따로 함수로 빼서 작성하였다. vo.. 2020. 10. 12. [C언어] 이중포인터, 더블포인터 설명 포인터는 주소를 저장하는 '변수'이다. 주소를 저장한다는 특수한 목적이 있는 것일 뿐, 포인터는 당연히 변수이다. 그래서 포인터의 주소값을 가리키는 포인터인 더블 포인터가 존재할 수 있는 것이다. 선언하는 방법은 포인터를 선언할 때처럼 더블 포인터를 선언하고, 포인터가 변수의 주소를 담는 것처럼, 더블 포인터는 포인터의 주소를 담으면 된다. 더블 포인터의 값은 포인터인 변수의 주소값이 나오고, 더블 포인터의 값의 값은 포인터의 값인 변수의 값이 나온다. 더블 포인터의 값이 포인터이기 때문이다. 이해를 위해 아래의 예제를 보자. #include /* 이중 포인터 예제1 */ void function(int** dptr) { printf("호출완료, 넘겨받은 더블 포인터가 가르키는 값: %d\n", **dp.. 2020. 10. 5. [C언어] 포인터 쉽게 이해하기 포인터를 쉽게 이해하려면 다음의 5가지를 이해하면 된다. 반대로, 포인터가 어렵게 느껴지는 이유는 이 5가지를 이해하지 못해서이다. 1. 포인터의 정의 2. 포인터를 사용하는 이유 3. 포인터를 선언하는 방법 4. 포인터에 대입해줘야 하는 것의 정체 5. 포인터가 가키리고 있는 값을 읽어오는 방법 차례대로 한번 이해해보자. 포인터의 정의 먼저, 포인터는 다른 변수의 주소를 저장하는 변수이다. 포인터 사용 방법 아래의 과정을 통해 포인터의 선언, 값 읽어오기 등 기본적인 사용 방법을 알아보자. 아래 코드는 num 변수를 선언하여 123으로 초기화하고 출력하는 기본적인 코드다. #include int main(void) { int num = 123; printf("%d\n", num); return 0; }.. 2020. 10. 5. [C언어] 배열 길이 구하기 이번엔 C언어에서 배열의 길이를 구하는 예제를 살펴보자. 먼저 main 함수 안에 x라는 배열을 선언하여 값을 넣는다. 여기서는 데이터 타입을 int 형으로 했기 때문에 자료 하나 당 4byte를 차지함을 알 수 있다. 여기서 sizeof() 함수를 이용하는데 여기에 배열의 이름을 넣게 되면 배열이 차지하는 공간의 크기를 알 수 있다. 배열에 4개의 원소가 담겨져있다면 총 16byte를 차지할 것이다. 우리가 원하는 '4' 라는 정수를 얻어내기 위해서는 4라는 숫자로 나눠야 할 것이지만 배열이 int형이 아닐 수도 있다. 따라서 배열의 첫번째 원소의 크기를 sizeof() 함수로 구하여 이를 나눠주면 된다. 이를 매크로 함수로 구현하였는데 매크로 함수는 전처리기에서 동작하는 것이기 때문에 괄호를 붙이지 .. 2020. 10. 5. 이전 1 2 다음