본문 바로가기

Programming/C Programming Modern Approach (K.N.K)6

[KNK 정리] 7장: Basic Types 요약/정리 integer types integer type은 말 그대로 정수를 데이터로 하는 변수의 타입이다. signed와 unsigned로 나누는데, signed의 경우 첫 번째 비트(MSB, Most Significant Bit)를 부호 비트로 사용한다. MSB가 1이면 음수, MSB가 0이면 양수이다. unsigned의 경우는 항상 0보다 크거나 같은 정수만 표현할 수 있으며, MSB를 부호 비트로 사용하지 않는다. 기본적으로 C에서 integer type은 별도로 명시하지 않는 한 signed이다. 가장 일반적인 integer type은 앞의 글에서도 많이 사용했단 int이다. 그 외에 필요에 따라 long int, short int도 사용할 수 있다. long int, short int는 lo.. 2021. 8. 22.
[KNK 정리] 6장: Loops 요약/정리 반복문(Loop)는 정해진 구문을 반복적으로 실행하는데 사용된다. C에는 반복문으로 for, while, do가 있다. while statement 형식 : while ( expression ) statement while문은 expression이 거짓이 될때까지 statement를 실행한다. 먼저 expression을 evaluate하고, 참이라면 statement를 실행한다. 일반적으로 statement를 실행하다보면 특정 시점에서 expression이 거짓이 되어 while문이 종료된다. 그렇지 않은 경우에는 무한 루프에 빠지거나, break나 goto로 빠져나와야 한다. 일부러 expression에 1처럼 상수를 넣어서 무한루프를 만드는 경우도 있다. do statement 다른데선 d.. 2021. 8. 21.
[KNK 정리] 5장: Selection Statements 요약/정리 C언어에는 몇가지의 statements가 있다. 이번 장에서는 selection statements를 다룬다. - selection statements: if / switch 등 조건에 따라 분기하는 구문 - iteration statements: for, while, do-while 등 정해진 동작을 반복하는 구문 - jump statements: 코드를 점프하는 구문 - compound statement: 여러 개의 구문을 하나의 구문으로 만들기 위한 구문 - null statement: 아무 동작도 수행하지 않는 구문 logical expressions 우리는 4장에서 배웠듯 연산자를 통해서 다양한 expression을 만들 수 있다. 하지만 x + y와 같은 expression과 다르게.. 2021. 8. 18.
[KNK 정리] 4장: Expressions 요약/정리 C언어는 다른 언어와 달리 expression을 강조한다. 기본적으로 변수와 상수도 expression에 해당하며, 연산자를 통해서 새로운 expression을 만들 수도 있다. (x + y) * z에서 x, y, z, x + y, (x + y) * z는 모두 expression이라고 할 수 있다. 산술 연산자 (Arithmetic Operators) 단항 연산자 (Unary Operators) 산술 연산자 중 단항 연산자는 +, -가 있다. 이는 expression의 부호를 나타낸다. 예시): +1, -1, +x, -x 이항 연산자 (Binary Operators) + : 두 operand의 합을 구한다. - : 좌측 operand에서 우측 operand를 뺀 값을 구한다. * : 두 ope.. 2021. 8. 17.
[KNK 정리] 2장: C Fundamentals 요약/정리 간단한 C언어 프로그램의 구현 #include /* Standard Input/Output 관련된 함수의 정의를 포함한다 */ /* main 함수: 모든 C 언어 프로그램에 들어가는 필수적인 함수 */ intmain(void) { printf("To C, or not to C: that is the question.\n"); /* 문자열 출력 */ return 0; /* main 함수를 종료한다. 0은 프로그램이 정상적으로 종료됨을 의미한다. */ } 전처리(Preprocess), 컴파일(Compile), 링크(Link) C언어로 프로그램을 만들때 보통 전처리, 컴파일, 링크라는 세 단계를 순서대로 거친다. 전처리 전처리는 컴파일 이전에 #define, #include, #if, #endif와.. 2021. 8. 16.
[KNK 정리] 1장: Introducing C 커널을 보다보니까 C언어를 좀 더 이해하면 좋겠다 싶어서 KNK (C Programming: A Modern Approach)를 읽고 있다. 근데 정리를 안 하니까 자꾸 헷갈려서 요약 + 연습 문제 풀이를 해보려고 한다. 요약/정리 C언어의 역사 C언어는 1970년대 데니스 리치와 켄 톰슨이 당시 벨 연구소에서 진행하던 유닉스 운영체제를 위해 개발된 언어이다. C언어 이전까지만 해도 유닉스는 어셈블리어로 작성되었다. 어셈블리어는 개발도, 디버깅도 번거로울 뿐만 아니라 아키텍처에 의존적이기 때문에 이식성도 좋지 않았다. 그래서 데니스 리치와 켄 톰슨은 좀더 추상적인, 고수준의 언어를 적용하기로 했고, 그렇게 C언어가 탄생하게 되었다. C언어의 표준 컴퓨터공학을 공부하다보면 표준의 부재로 생기는 문제들이 매.. 2021. 8. 16.