Mt.Hwang 2024. 12. 9. 10:59

프로그램 할당 메모리

 1. 텍스트

 2. 데이터

 3. 힙

 4. 스택

헤더 파일

정적 외부 변수

정적 외부 함수

 

 

추상 자료형

가변 인자 함수

진단 코드

 1. #error

 2. assert()

 3. _Static_assert()

자기 참조 구조체

플랙시블 배열 멤버

 

 

신호

헤더 파일

 

 

프로그램 순서

 1. os

 2. 디스크

 3. 메모리

 4. main()

메모리 배치

 1. 텍스트

 2. 데이터

 3. 힙

 4. 스택

 

 

텍스트 영역  text

PC 레지스터

 

 

데이터 영역  data

BSS

힙 영역  heap

 

 

스택 영역  stack

스택과 힙

 

 

여러 소스 코드를 합쳐서 컴파일

 1. 동시에 컴파일

 2. 각자 목적 파일을 생성 후 컴파일  gcc -c 사용

 

 

사용자 헤더 파일

표준 헤더 파일과 #ifndef

 

 

외부 변수

extern

정적 외부 변수

static

 

 

정적 외부 함수

 

 

추상 자료형  ADT  Abstract Data Type

스택  Stack

톱  top

함수 프레임

 

 

스택 연산자

 1. push

 2. pop

 3. top

 4. empty

 5. full

 6. reset

스택 구현

 

 

스택 초기화  void reset(stack *st)

스택 추가  void push(stack *st, int data)

스택의 top 보여주고 삭제  int top(stack *st)

스택의 top 보여주기  int top(stack *st)

 

 

스택이 비어있는지 확인  bool empty(const stack *st)

스택이 다 차 있는지 확인  bool full(const stack *st)

 

 

가변 인자 함수

<stdarg.h>

 1. va_start(ap, v)

 2. va_arg(ap, type)

 3. va_copy(dest, src)

 4. va_end(ap)

 

 

가변 인자 함수 주의점

va_list형 변수

미리 정의된 매크로

 1. __DATE__

 2. __TIME__

 3. __FILE__

 4. __LINE__

 5. __STDC__

 6. __STDC_HOSTED__

 7. __STDC_VERSION__

 8. __func__

__DATE__

__TIME__

__FILE__

__LINE__

__STDC__

__STDC_HOSTED__

__STDC_VERSION__

__func__

\

 

 

콤마 연산자 ,

printf()와 콤마 연산자 ,

긴 매크로 정의하기

 

 

진단 코드

#error

assert()

 

 

core dumped

NDEBUG 매크로

_Static_assert()

<assert.h>와 _Static_assert()

 

 

자기 참조 구조체

자기 참조 구조체와 동적 메모리 할당

 

 

가비지  gabage

자기 참조 구조체와 추상 자료형

스택 (자기 참조 구조체)

 1. push

 2. pop

 3. top

 4. empty

 5. reset

 

 

스택 추가  void push(node *top, int input)

스택의 top 보여주고 삭제  int pop(node *top)

스택의 top 보여주기  int top(node *top)

스택이 비어있는가  bool empty(const node *top)

스택 초기화  void reset(node *top)

 

 

플렉시블 배열 멤버  Flexible array member

 

 

프로세스  process

프로그램

신호  signal

 

 

<signal.h>

 1. SIGINT

 2. SIGILL

 3. SIGFPE

 4. SIGKILL

 5. SIGSEGV

 6. SIGALRM

 7. signal()

 8. SIG_DFL

 9. SIG_IGN

signal()

 

 

신호 처리 매크로

 1. SIG_DFL

 2. SIG_IGN

SIG_DFL

SIG_IGN