휴지통/C 프로그래밍

//4-1 #define _CRT_SECURE_NO_WARNINGS #include #include typedef struct book { char title[30];//제목 char author[10];//저자 int npage;//페이지 수 }Book; int main() { Book books[3]; int i; printf("도서 정보 입력 \n"); for (i = 0; i < 3; i++) { printf("저자 :");fgets(books[i].author, 3, stdin); books[i].author[strlen(books[i].author) - 1] = 0; //엔터키제거 printf("제목 :");fgets(books[i].title, 3, stdin); books[i].title[..
1. 선행처리기와 매크로 -선행 처리는 컴파일 이전의 처리를 의미합니다. 선행처리는 선행처리기에 의해서, 컴파일은 컴파일러에 의해서, 그리고 링크는 링커에 의해서 진행이된다. 컴파일 이전에 선행처리의 과정을 거친다는 점에 주목을 해야한다. ​ 컴파일 과정을 거치게 되면 바이너리 데이터로 이루어진 오브젝트 파일이 생성된다. 그렇다면 컴파일 이전에 진행되는 선행처리의 과정을 거치게 되면 어떠한 데이터로 채워진 파일이 생성되는가? 선행처리의 과정을 거쳐서 생성되는 파일도 그냥 소스파일일 뿐이다. 왜냐하면 소스파일의 형태가 그대로 유지되기 때문이다. 선행처리기가 하는 일은 지극히 단순하다. 우리가 삽입해놓은 선행처리 명령문대로 소스코드의 일부를 수정할 뿐인데, 여기서 말하는 수정이란 , 단순치환(substitu..
1. C언어의 메모리 구조 프로그램을 실행하면 해당 프로그램의 실행을 위한 메모리 공간이 운영체제에 의해서 미리 마련이 된다. 그리고 바로 이 메모리 공간 내에서 변수가 선언되고, 문자열이 선언된다는 것이다. ​ -메모리 구성 프로그램 실행시 운영체제에 의해서 메모리 구조는 다음과 같이 네개의 영역으로 구분이 된다. 메모리 공간을 나눠놓은 이유는 커다란 서랍자으이 수납공간이 나뉘어 있는 이유와 유사하다. 메모리 공간을 나눠서 유사한 성향의 데이터를 묶어서 저장하면, 관리가 용이해지고 메모리의 접근 속도가 향상된다. ​ -메모리 영역별로 저장되는 데이터 유형 ​ *코드 영역 (Code Area) 코드 영역은 이름 그대로 실행할 프로그램의 코드가 저장되는 메모리 공간이다. 따라서 CPU는 코드 영역에 저장된..
1. 스트림과 데이터의 이동 -무엇이 입력이고 무엇이 출력인가? 데이터의 입력과 출력은 프로그램의 흐름을 뜻하는 것이다. 그렇다면 무엇이 '입력'이고 무엇이 '출력'인가? 프로그램을 중심으로 프로그램 안으로 데이터가 흘러 들어오는 것이 입력이고, 프로그램 밖으로 데이터가 흘러 나가는 것이 출력이다. 가장 대표적인 입력장치로는 키보드가 있으며, 파일도 입력의 대상이 될 수 있다. 그리고 대표적인 출력장치로는 모니터가 있으며, 파일 역시 출력의 대상이 될 수 있다. ​ -데이터의 이동수단이 되는 스트림 서로 떨어져 있는 개체를 연결해주는 다리의 역할을 하는 매개체를 '스트림(Stream)'이라 한다. ​ 실행중인 프로그램과 모니터를 연결해주는 '출력스트림'이라는 다리가 놓여있고, 실행중인 프로글매과 키보드를..
1. 파일과 스트림(Stream), 그리고 기본적인 파일의 입출력 -저기 저파일에 저장되어 있는 데이터를 읽고싶을때 프로그램상에서 파일에 저장되어 있는 데이터를 참조하길 원한다고(읽기원한다고) 할때, 이 때 가장 먼저해야 할일은 우리가 구현한 프로그램과 참조할 데이터가 저장되어 있는 파일 사이에 데이터가 이동할 수 있는 다리를 놓는 일이다. 이러한 데이터의 이동의 경로가 되는 다리를 가리켜 '스트림(Stream)'이라 한다. 프로그램과 파일사이에 스트림을 형성해야 데이터를 주고 받을 수 있다. 스트림이라는 것은 운영체제에 의해서 형성되는 소프트웨어 적인 상태를 의미하는 것일 뿐이다. 따라서 프로그램과 파일 사이에 스트림이 형성되었다고 하면 다음과 같이 이해하면 된다. "파일로 부터 데이터를 읽어 들일(파..
1. 구조체의 정의와 typedef 선언 구조체 변수를 선언할 때에는 무조건 struct 선언을 추가해야 한다. 하지만 이것이 여간 귀찬흔게 아니다. int형 변수 num을 선언할 때 그저 int num이라 선언하듯이, person형 구조체 변수 man을 선언할 때에도 struct 선언 없이 그저 person man이라 하고 싶다. 그렇다면 구조체를 정의한 후에 typedef 선언을 추가해야 한다. - typedef 선언 typedef 선언은 기존에 존재하는 자료형의 이름에 새 이름을 부여하는 것을 목적으로 하는 선언이다. 예를 들어서 다음과 같이 typdef선언을 하게 되면 typedef int INT; //int의 또 다른 이름 INT를 부여! 이로 인해 다음의 뜻을 컴파일러에 전달하게 된다. 자료형..
신재권
'휴지통/C 프로그래밍' 카테고리의 글 목록