안녕하세요 KOEY입니다. 처음엔 제 공부과정을 기록하기 위해 시작한 블로그인데, 정말 뜻하지 않게 한 분이 제 블로그를 구독도 해주시고 처음 댓글을 달아주었습니다. 누군가에겐 고작 한 명일 수도 있지만, 댓글을 달아주신 그 분께 답글을 달면서 혼자 엄청 기뻐했던 기억이 납니다. 그 이후로도 몇 명씩 제 블로그를 어쩌다 찾아주는 분들이 있습니다. 제 블로그를 보면 아시겠지만 뭐 하나 제대로 꾸며지지도 않았고, 블로그 방문자를 늘리기 위해 어떠한 행동도 한 적이 없는데 어쩌다 제 블로그를 방문하게 되는지 지금도 아리송합니다 ㅎ; 어찌됐건 제 블로그를 한번씩 찾아오시는 분도 계시는 것 같고, 제가 프로그래밍 언어를 공부하지 않는 날에 하는 다른 활동도 공유하고 싶어서 이렇게 일기를 쓰게 되었습니다. 그리고 ..
친구 목록을 관리하는 프로그램을 만듭니다. 5명 친구의 성별, 나이, 이름, 전화번호를 입력하고 가장 나이가 많은 친구의 목록을 출력합니다. 단, 다음과 같이 2개의 헤더 파일과 2개의 소스 파일로 분할 컴파일합니다. friend.h 헤더 파일 : 친구의 각 항목을 멤버로 갖는 Friend 구조체 선언합니다. func.h 헤더 파일 : func.c에 구현된 함수를 선언합니다. func.c 소스 파일 : inputData, oldestFriend, printData 함수 구현 main.c 소스 파일 main.c 소스 파일은 아래와 같이 작성합니다. #include #include "friend.h" #include "func.h" int main(void) { Friend myFriend[BEST_CNT]..
신체 발육 검사 프로그램을 만듭니다. 24개월까지 아이의 키를 단계별로 입력하여 표준키와 비교한 후 단계별 키의 차이와 차이의 평균을 출력합니다. 표준키는 다음 기준을 사용하고 전처리 단계에서 매크로명의 정의에 따라 선택되도록 조건부 컴파일로 작성합니다. 남자 아이 3단계 발육 표준 키 : 49.4 74.8 85.0 남자 아이 5단계 발육 표준 키 : 49.4 66.3 74.8 79.9 85.0 여자 아이 3단계 발육 표준 키 : 50.1 76.0 86.2 여자 아이 5단계 발육 표준 키 : 50.1 67.6 76.0 81.2 86.2 실행 결과는 다음과 같습니다. //남자 아이 3단계 - 매크로명 MALE이 정의되고 매크로명 LEVEL이 3일 때 단계별 키 입력(3단계) : 50 70 92 단계별 표준..
사칙연산 계산기 프로그램을 만듭니다. 사칙연산 수식을 입력하면 그 결과를 출력하는 프로그램을 작성합니다. 단, 수식을 입력하는 함수와 사칙연산 함수를 매크로 함수로 작성합니다. 실행결과는 다음과 같습니다. /* 실행결과 수식 입력(종료 Ctrl + Z) : 10 + 20 10 + 20 = 30 수식 입력(종료 Ctrl + Z) : 10 - 4 10 - 4 = 6 수식 입력(종료 Ctrl + Z) : 10 * 5 10 * 5 = 50 수식 입력(종료 Ctrl + Z) : 10 / 4 10 / 4 = 2 수식 입력(종료 Ctrl + Z) : ^Z */ 다음은 제가 작성한 코드입니다. 수식을 입력하는 함수와 사칙연산 함수를 매크로 함수로 작성하라는데 당최 무슨 말인지 모르겠네요. 그냥 매크로 함수 사용법만 익..
주의 사항! 이 일지는 작성하고 있는 현시점, 공부와 병행하면서 작성되고 있습니다. 공부 중에 떠오른 생각이나 그때그때의 개념정리 같은 내용이 포함됩니다. 따라서 이 일지의 내용은 제가 공부하고 이해한 대로 작성되기 때문에 실제 사실과는 다를 수 있습니다. 하나의 프로그램을 여러 개의 소스 파일로 나누어 각각 독립적으로 컴파일하면 디버깅하기 쉽고 유지 보수와 코드 재활용에 유리합니다. 분할 컴파일은 하나의 프로그램을 여러 개의 파일로 나누어 작성하면 됩니다. 간단한 예제를 통해 분할 컴파일 방법을 살펴보겠습니다. #include void inputData(int*, int*); double average(int, int); int main(void) { int a, b; double avg; inputD..
주의 사항! 이 일지는 작성하고 있는 현시점, 공부와 병행하면서 작성되고 있습니다. 공부 중에 떠오른 생각이나 그때그때의 개념정리 같은 내용이 포함됩니다. 따라서 이 일지의 내용은 제가 공부하고 이해한 대로 작성되기 때문에 실제 사실과는 다를 수 있습니다. 프로그램은 컴파일 환경을 바꾸거나 여러 개의 모듈로 나누어 작성할 때 이식성과 호환성을 고려해야 합니다. 따라서 컴파일하기 전에 컴파일 환경에 맞게 소스코드를 편집할 수 있는 기능이 필요합니다. 이번 시간에는 그 기능을 담당하는 전처리 지시자의 종류와 기능을 살펴봅니다. 지금까지 코드의 첫 줄에서 항상 사용해온 #include도 전처리 지시자입니다. #include는 꺽쇠괄호 안의 파일의 내용을 읽어와 지시자가 있는 위치에 붙여 넣습니다. 예제를 통해..