본 내용은 POCU COMP2200: C 언매니지드 프로그래밍 강의를 토대로 작성하였습니다.
- 평가 순서를 강제하는 연산자
- &&, || 등은 시퀀스 포인트임
- 즉, 시퀀스 포인트 앞에 것을 먼저 평가해야 한다
- 왼쪽부터 오른쪽으로
또 다른 예
- 범위(scope)
- 총 4가지의 범위가 있다
- 블록 범위
- 파일 범위
- 함수 범위
- 함수 선언 범위
- 총 4가지의 범위가 있다
- 블록 범위
- 이미 아는 내용
- 중괄호({}) 안에 선언한 것들은 그 블록 안에서만 사용 가능
- 블록 안에 또 다른 블록을 넣을 수도 있다
- 그러면 안쪽 블록은 바깥 블록에 접근 가능
- 그 반대는 안됨
- 파일 범위
- 어떤 블록이나 매개변수 목록에도 안 속하고 파일 안에 있는 것
- 파일 범위에 있는 변수의 메모리 위치
- 함수 범위
- 유일한 예 : 레이블(label)
- goto 같은 데서 쓰는 것
- 함수 안에서 선언된 레이블은 함수 어디에서라도 접근 가능
- 다른 범위들은 위에서 선언된 것만 접근 가능했음
- 함수 선언 범위
- 함수 선언의 매개변수 목록에 있는 것은 그 목록 안에서 접근 가능
- 많이 쓸 일은 없음
- 다음과 같은 예는 괜찮음
- const
- const 베스트 프랙티스
- 기본적으로 모든 변수에 const를 붙이자
- 정말 값 변경이 필요한 변수에만 const를 생략하자
- 원칙적으로 말하면 언어의 기본 동작이 바뀌어야 함
- 아무것도 안 붙이면 const
- 굳이 프로그래머가 바뀌는 걸 원하면 앞에 뭔가 붙이기
- Rust란 언어가 이런 일을 매우 잘했음
let num1=1024; //(기본) 변경 불가능
let mut num2 =1024; //변경 가능
'C' 카테고리의 다른 글
[C] 스택 메모리, 매개변수 배열 (0) | 2022.02.27 |
---|---|
[컴퓨터의 작동 원리] 컴퓨터 메모리의 기본 구조 (0) | 2022.02.16 |
[C] #include,stdio.h, C 기본 문법 (0) | 2022.02.14 |
[컴퓨터의 작동 원리] 컴퓨터를 켤 때 일어나는 일들 / 운영체제가 해주는 일들 (0) | 2022.01.21 |
[컴퓨터의 작동 원리] 컴퓨터의 구성 요소들 (0) | 2022.01.21 |
댓글