본문 바로가기
전처리기와 상수(Preprocessor and constant) 가령, 원주율(π)와 같은 수를 반복해서 사용할 때, 3.14159를 반복적으로 사용하여 코드를 작성하는 것은 너무 번거롭다. 또한, float형 변수를 선언하여 float pi; pi=3.14159;를 이용할 경우 중간에 실수로 pi값이 바뀔 위험이 있다. 따라서 C는 전처리기를 활용하여 특정 상수를 쉽게 사용할 수 있다. # define PI 3.14159 전처리기가 있는 코드를 컴파일러가 컴파일하면 PI로 기재된 부분을 3.14159로 바꾸어 컴파일을 진행한다. C언어에서 편의를 위해 상수는 대문자로 표기하거나, 변수명 앞에 c_, k_ 를 붙여서 구분한다. 예제: #define BEEP '\a' #define TEE 'T' #define ESC '\033' #define OOPS "Now you .. 2021. 4. 16.
문자열(Character String) H e l l o , w o r l d ! \0 C에는 문자열을 위한 자료형이 없다. 대신에 char 배열에 문자열을 저장한다. 문자열의 마지막에는 널문자(Null character) \0가 있다. \0은 char 배열에서 문자열이 끝났음을 알려준다. 그러나 scanf()로 문자열 입력시 자동으로 기입되므로 문자열의 끝에 직접 \0을 입력할 필요는 없다. 원칙적으로 scanf()를 이용해서 문자열을 입력받으면 공백, 탭, 줄넘김 전까지의 문자를 입력받으므로 한 단어만 입력받을 수 있다. 따라서 일반적인 문장을 입력받기 위해서는 fgets()를 사용한다. stlen() 함수를 사용하면 문자열의 길이를 알 수 있다. 2021. 4. 16.
이스케이프 문자(Escape Sequences) Sequence Meaning \a 알람(ANSI C) \b 백스페이스 \f 폼피드 \n 줄바꿈 \r 캐리지 리턴 \t 수평 탭 \v 수직 탭 \\ 백슬래쉬(\) \' 따옴표 \" 쌍따옴표 \? 물음표 \0oo \xhh 8진수 수 16진수 수 2021. 4. 15.
정수와 부동 소수점 수의 차이(The integer versus the floating-point number) 정수(The integer) 0 0 0 0 0 1 1 1 정수는 이진수로 변환되어 저장된다. 예를 들어 숫자 7을 8bit로 저장한다면 위와 같다.(23+22+21=7) 부동 소수점 수(The floating-point number) + .314159 1 부동 소수점 수는 실수(Real number)를 의미한다. 부동 소수점은 정수와 달리 지수부와 가수부로 나누어 수를 저장한다. 따라서 정수 7과 부동 소수점 7.0은 수학적으로 같은 수이지만 C언어에서는 저장 방법이 다르다. 따라서 float이나 double로 큰 수를 계산하면 오차가 발생한다. 원주율(π)을 float에 저장하면 위와 같다.(+.314159x101=3.14159) 2021. 4. 15.
C 자료형 키워드(C Data Keywords) Origianl K&R Keywords C90 K&R Keywords C99 Keywords int signed _Bool long void _Complex short _Imaginary unsigned char float double _Bool 타입(The _Bool Type) _Bool 타입은 C99에서 불 대수(Boolean algebra)를 표현하기 위해서 추가되었다. 0을 false, 1을 true로 사용하기 때문에 1비트의 메모리로 변수를 표현할 수 있다. 복소수 허수 타입 (Complex and Imaginary Types) 복소수 타입은 float _Complex, double _Complex, long double _Complex가 있다. 예를 들어 float _Complex는 두 개의 .. 2021. 4. 15.
반응형