본문 바로가기

전체 글178

왜 c언어에선 헤더 파일과 소스 파일을 구분할까? (c++, c#, 빌드 프로세스) 이 글은 독자가 c언어의 빌드 프로세서에 대해서 최소한의 지식은 알고 있다는 가정하에 서술하였다. c 계열의 언어는 헤더 파일과 소스 파일이 나눠져 주로 헤더 파일에는 declaration을, 소스 파일에는 definition을 적는다. 빌드 프로세스 과정을 간단히 나타내자면 preprocessor를 거치고 compiling 거쳐 object 파일이 만들어진다. 이렇게 만들어진 obj파일 (object 파일)들은 링커를 통해 라이브러리와 합쳐져 하나의 실행 파일을 만든다 ( 간단히 서술하여 많은 내용이 생략됨. ) 이 과정에서 이러한 의문을 품을 수 있다. 왜 헤더 파일과 소스 파일에 declaration과 definition을 구분하여 번거롭게 하는 것인가? 그냥 한 파일에 이 둘을 다 기입하는 건 안.. 2022. 3. 30.
[부동 소수점 floating point] 이론 , 예 , bias 표현법 용어 의미 부동 소수점은 둥둥 떠다닐 수 있는 소수점이다. 주의할 것이 움직이지 않는 의미에서의 부동이 아니다. ( 이는 고정 소수점이라는 실수 표기법으로 따로 존재한다.) 부동 소수점의 탄생계기 부동 소수점이전에 컴퓨터는 내부에서 모든 데이터들을 이진수로 다룬다. 정수의 영역에서는 큰 문제가 없으나, 실수에서 소수점 이하의 부분으로 가게된다면 문제가 발생된다. 그 문제는 소수점 이하의 모든 수를 이진수로 표현하기에는 한계가 있다는 것이다. 그래서 전산학에서 실수 자료형은 근사값을 끌어내 조심히 사용한다. 그리고 어떻게 하면 어느정도 정확도를 보장하며 좀 더 메모리 공간을 효율적으로 사용하여 더 넓은 범위의 수를 표현할 수 있을까 고안해서 나온 것이 부동 소수점이다. (밑의 예에서 고정 소수점 방식과 비.. 2022. 3. 1.