1.1) 전처리기 지시자 전처리: 컴파일러로 보내기 전 소스 코드를 만들고 수정할 수 있도록 하는 과정 (임시) -> C의 컴파일 파이프라인, 다른 언어에 비해 최소 한 단계 이상 가지고 있음을 의미. (다른 프로그래밍 언어에서는 컴파일러로 소스 코드가 바로 전달)
실제 소스 코드는 수많은 텍스트 파일로 이루어짐 (= 코드베이스)소스 코드 안의 각각의 텍스트 파일은 프로그래밍 언어로 쓰인, 텍스트로 된 명령어를 포함한다.CPU는 텍스트로 된 명령어를 실행할 수 없고, 이를 실행하기 위해 기계 수준의 명령어로 컴파일(번역)해야하고
프로젝트의 결과물 = 재배치 가능한 목적 파일, 실행 (목적) 파일, 정적 라이브러리, 공유 목적 파일재배치 가능한 목적 파일은 임시 결과물로 간주, 최종 결과물을 만드는 재료모든 라이브러리나 프레임워크는 사용된 기술이나 프로그램 언어와 상관없이 특정한 기능을 제공 =
스택과 힙은 프로세스의 동적 메모리 레이아웃에 속함. 모든 메모리 할당과 해제는 이 세그먼트에서 일어남실행 파일을 열 때마다 운영체제는 새 프로세스를 만든다. 프로세스는 실행중인 프로그램이며 메모리에 로딩. 고유의 프로세스 식별자(PID)를 가짐.운영체제는 새 프로세스
개발자는 대부분 스택과 힙 세그먼트를 다루기 바쁘다.데이터 및 BSS 세그먼트는 사용 빈도가 낮고, 개발자가 통제할 권한도 작기 때문. 또한, 컴파일러가 생성하는 데다, 프로세스의 수명동안 프로세스의 전체 메모리에서 차지하는 비율도 낮기 때문. (중요하지 않다는 의미
C에서 객체지향 프로그램을 작성할 수 있는 이유?\-> 간접적인 방식으로는 객체지향 개념을 지원한다. 사실상 거의 모든 컴퓨터 언어는 OOP를 지원. (자료형을 확장하는 방법 존재하고 이것이 OOP로 향하는 첫걸음임)OOP? \- object-oriented progr
to-be관계 = 상속 (다음 장)한 객체가 다른 객체를 포함하거나 소유할 떄, 즉 한 객체가 다른 객체로 구성될 떄, 이들 객체 사이에 합성 관계가 있다고 할 떄 사용.컨테이너에 포함된 객체의 수명은 컨테이너 객체의 수명에 바인딩 된다.포함된 객체의 수명은 컨테이너
객체와 객체에 상응하는 개념인 클래스 간의 관계 (상속, 다형성)확장, 상속 관계to-be 관계상속 관계 = 확장 관계: 기존의 객체나 클래스에 속성과 행위를 추가슈퍼타입 = 베이스 타입 = 부모 타입 ex.person_t자식 타입 = 상속받은 서브 타입 ex. stu
OOP에서 추상화? 추상 자료형을 다루는 것추상 클래스? 객체로 만들 수 없는 특별한 클래스필요성? 코드의 여러 부분 간에 강한 의존성이 생기지 않기 때문 ex. 인간, 사과, 과일정확한 값이 있는 것 = 구상 자료형추상화는 의존성이 최소인 객체 모델을 설계하는 가장
프로그램에서 동시성을 사용한 결과 나타날 수 잇는 문제를 집중적으로동시성 관련 문제, 경쟁 상태 및 데이터 경쟁고유 상태에 대한 접근을 동기화하기 위해 사용하는 동시성 제어 기술POSIX에서의 동시성동시성 문제에 대한 여러 유형 1\. 동시성 제어 메커니즘이 없을 때