C언어에서 사용하는 문자열은 null-terminated string을 따르며 일반적으로 char*로 표현된다. 이때, 문자열은 리터럴(Literal)을 이용해 정의할 수 있는데 문자열 리터럴은 Read-Only 메모리에 저장되며 수정할 수 없다. C언어...
일반적으로 C와 C++에서는 배열의 크기를 컴파일 시간에 결정한다. 따라서 배열의 크기는 일반 변수로 정할 수 없으며 컴파일 타임 상수가 되어야 한다. 그런데 C99 표준에 이런 상식을 깨는 문법이 들어왔다. #include <stdio.h> in...
main 함수는 C/C++ 프로그램의 시작점으로, 모든 프로그램은 하나의 시작점만 가지고 있어야 하므로 main 함수는 언제나 하나만 존재해야 한다. 만약 main 함수가 없다면 프로그램을 시작할 수 없다. main 함수에는 프로그램의 시작 인자를 넘겨줄 수 ...
C언어에서 scanf 함수를 사용하는 코드를 보다 보면 종종 fflush(stdin) 함수를 보곤 한다. 결론부터 말하자면, fflush의 정의는 출력 버퍼를 비우는 함수다. 따라서 표준입력인 stdin을 fflush에 넣는 것은 함수 설계 의도에 위배된다. ...
C의 파일 입출력에는 시스템콜과 라이브러리 함수가 있다. 시스템 콜(System Call)은 커널(Kernel)에 직접 서비스를 요청하는 것을 말한다. 주로 하드웨어, 프로세스, 파일의 I/O등을 처리하며 프로그램은 사용자(User) 모드가 아닌 커널 모드로 ...