본문 바로가기

프로그래밍/C language

(8)
8. The UNIX System Interface 8.1 File Descriptors - Unix OS에서 표준 입/출력은 모두 실제로 file로 구현됨 - 읽기/쓰기 등의 작업을 위해, OS에 실제로 입/출력 파일이 존재하는지, 그 권리가 있는지 등을 확인 받으면 OS는 non-negative integer인 file descriptor값을 반환함 - file descriptor는 그러한 파일들을 식별하는 identifier임, 0는 표준입력, 1은 표준출력, 2는 표준에러출력 - 일반적으로, 0은 keyboard, 1과 2는 screen 으로 설정되어 있으며, shell에서 명령어를 통해 변경가능 ex) prog file2 //file descriptor 0을 file1으로, file descriptor 1을 file2 로 지정 //이렇게 되면, ..
7. Input and Output 7.1 Standard Input and Output - 표준 입출력에 관한 함수는 header file인 에 들어가 있음 - getchar, putchar, printf 등을 이용하여, 표준 입력/출력을 구현 ex) command line 명령어를 이용한 입/출력 prog >infile // input : infile, 실행프로그램 : prog otherprog | prog // input : otherprog의 결과, 실행프로그램 : prog 7.2 Formatted Output - Printf - Printf는 표준 출력을 지원함 - int printf(char *format, arg1, arg2, ...) ex) char p[] = "good" printf("%-15.10s", p); // 출력결..
6. Structures 6.1 Basics of Structures - Structure은 여러 variable이 묶어진 collection임 - 관련된 여러 변수들을 하나의 단위로 조작가능하게 해줌 - structure 내부 변수명은 바깥의 변수명과 겹쳐도 상관없음 ex) struct point{ int x; int y; }; //두가지 int형의 x,y 변수를 가지는 point라는 구조를 선언, 여기서 point를 structure tag라고 하고 안에 있는 변수를 member라고 함 struct point pt; // 앞서 정의한 struct point라는 구조를 틀로 하는 pt변수 선언 pt = {100, 200}; // pt의 member변수에 값 할당 print(%d, %d, pt.x, pt.y); // pt의 x와..
5. Pointer and Arrays 5.1 Pointer and Addresses - 메모리는 8byte크기를 갖는 cell들의 집합임. 예를 들어, char은 cell 1개, short는 cell 2개로 표현될 수 있음 - pointer는 이러한 것들의 address를 갖는 group of cell임 - unary operator인 &는 object의 address를 반환하는 함수 ex) p = &c - unary operator인 *는 indirection 또는 dereferencing operator이며, 역참조를 뜻한다. 즉, pointer가 변수 a를 참조했다면, pointer를 통해 역으로 변수 a를 참조한다는 것이다. (ad. referencing의 의미는 a의 존재를 바탕으로 b의 존재를 말하는 것이며, a가 없다면 b의 존..
4. Function and Program Structure 4.1 Basics of Functions - function를 사용하는 것은, 필요 없는 것은 최소화하고 필요한 전체를 볼 수 있게 해 주며 사용성을 높인다. - function는 argument(인자)와 return을 통해 다른 함수와 communication을 한다. - 프로그램은 variable과 function의 집합이다. - return문의 문법 : return expr; - function들은 하나의 source file에 저장될 수도 있고, 여러 source file에 나누어 저장될 수도 있다. 하나의 source file에 저장될 경우, 컴파일 후 하나의 object file이 생기고, 여러 파일에 저장된 경우 여러 object파일이 생긴다. 여러 object파일들은 load과정에서 하나..
3. Control Flow 3.1 Statements and Blocks - expression 뒤에 semicolon이 붙을 경우 그것은 statement가 된다. - Block은 declaration과 statement를 하나로 묶은 것으로, compound statement라고도 함 문법적으로 하나의 statement와 동일하다. ex) if문이나 function문 3.2 If-Else - Decision을 표현할 때 사용, brace(중괄호)를 사용하는 것이 의도를 잘 보여주어서 좋음 - if (expr) statement1 else statement2 3.3 Else-If - Multi-way decision을 표현할 때 사용, 순서대로 evaluated 됨 - if - else if - else 문을 사용하는 binar..
About C language bulletin board 일명 화이트 북이라고 불리는, W.Kernighan의 The C Programming Language - 2nd edition의 내용을 요약하여 정리하였습니다. www.yes24.com/Product/Goods/63416 C 언어 프로그래밍 C 언어의 개발자인 Brian W. Kernighan이 저술한 책으로써 C 레퍼런스를 언급할때 빠지지 않는 전통적인 C 언어 책이다. C 언어 특성이 되는 문법적 내용이 명료하고 간단하게 설명되어 많은 사람들에 www.yes24.com
2. Types, Operators, and Expressions 1) Variable Names -첫 번째에는 반드시 letter이 와야 한다. 왜냐하면, library routine에서 _로 시작하는 경우가 많기 때문이다. -local variable의 _의 사용을 통해 readability를 향상할 수 있다. -local variable은 짧은 이름을 사용한다. 특히, loop control에 사용되는 경우 -대소문자를 구별한다. -function, external variable은 31자 내로 제한된다. 이 이상을 넘어갈 경우, assenbler, loader가 처리할 수 없다. -목적에 알맞는 이름을 할당하도록 한다. 2.2 Data Types and Sizes -char, short (int), int, long (int), float, double -cha..