C언어는 1970년대 초 AT&T의 벨 연구소에서 탄생한 프로그래밍 언어다. 시스템 프로그래밍 언어인 BCPL(basic combined programming language)에서 발전한 B언어를 계승했다. C언어는 개발 초기 'New B'로 불리기도 했다. > ##
선언문 구성 요소 C언어의 선언문은 포인터, 직접 선언자, 생성자로 구성된다. (선언문은 정의문과는 구분되지만 이 글에서는 선언문을 정의문과 같은 의미로 해석한다. 정의문은 새 객체를 생성할때, 선언문은 만들어진 객체를 참조할 때 사용한다.) 포인터는 다음의 표현
운영체제 별로 메모리 저장 방식이 다르다. 빅엔디안 빅엔디안(big endian) 방식은 작은 메모리 주소값을 시작으로 오름차순으로 최상위 비트부터 차례대로 저장하는 방식이다. 유닉스 계열 운영체제에서 사용한다. 네트워크의 바이트 오더이기도 하다. 리틀엔디안 리틀엔디안(little endian) 방식은 큰 메모리 주소값을 시작으로 내림차순으로 최상위 비...
기계어는 하드웨어 시스템이 어떤 상황에서 어떻게 작동할지를 미리 정한 약속이다. 기계들이 이해하는 언어는 오직 기계어라고 불리는 2진수 언어다.
컴퓨터에서 소수점을 나타낼 때 두가지 방법이 있다. 고정소수점(fixed point)과 부동소수점(float point) 방식이다. 그러나 고정소수점에서 부동소수점으로, 또는 부동소수점에서 고정소수점으로 변환하기 위해선 복잡한 과정을 거쳐야 한다. C에서 표준으로 자리잡은 float(혹은 double) 표기 방식이 IEEE-754 standard를 따르기...
C에서 메모리를 할당할 때 사용하는 malloc 함수는 표준함수이기는 하지만 시스템콜은 아니다. 사실 malloc은 내부적으로 시스템콜 함수인 brk/sbrk와 mmap을 사용하게 된다. brk와 mmap에 대한 내용이 복잡하기 때문에 추상적으로나마 이해해보고 이중
cin과 cout과 관련된 입출력이 많은 경우 C++의 실행 속도를 좀더 빠르게 하는 방법이 있다. cin.tie(NULL)과 iosbase::syncwith_stdio(false)를 적용해 주고, std::endl 대신 '\n'을 사용하는 것이다. std::ios:
std::strin -> char const * UpperCase, LowerCase std::stoi() 숫자 문자열을 int, double로 변환 split 함수 사용 std::istringstream 문자열에서 각 타입별로 추출(>>)할 때 사용한다. std::ostringstream 하나의 문자열로 합치기만 가능하고, 추출(>>)할 수는 ...