sizeof( )
sizeof( )의 매개변수는 "자료형"이다.
특징 - compile time 연산
- cpu 사용 X
필요하다면 아끼지말고 자주자주 써먹자! (유지 보수에 유용하다.)
ex)
sizeof(1) -> int -> 4
sizeof('1') -> char -> 1
sizeof( 3 + 1.2 ) -> double -> 8
int aList[5];
sizeof( aList ) -> int[5] -> 20
( aList는 주소이긴 하나 pointer는 아니다. )
memset 같은 함수를 사용할 때, 크기를 직접 계산하려 하지말고 sizeof에게 시켜라. ( machine code 에서는 동일하다. )
(디스 어셈블 결과 둘이 완전히 동일하다는 사실을 알 수 있다.)
debug 모드에서 Alt + Ctrl + D 를 누르면 디스 어셈블을 할 수 있다.
크기 비교
computer == 전가산기
A, B의 크기를 비교할 때 - 연산을 사용한다.
- 이런 역할을 하는 함수로는 memcmp( ), strcmp( )가 있다.
실수는 오차가 있을 수 밖에 없으므로 상등 or 부등 연산은 '절대' 하지 말자.
ex) 2147483600.0F == 2147483648.0F <- 같다고 나온다..
논리 연산자
Short Circuit
- 논리 연산은 무조건 L -> R 방향
- 안해도 되는 연산은 하지않는다.
구문1 && 구문2 => 구문1이 거짓이면 구문2는 연산하지 않고 거짓을 출력한다.
구문1 && 구문2 || 구문3 => 구문1이 거짓이면 구문2는 연산하지 않고 구문3으로 jump 한다.
short circuit을 이용한 효율적인 코딩방법
1. 비교할 연산자 중 더 빠른 연산식을 왼쪽에 둔다.
2. or 연산의 경우 참일 확률이 높은 구문을 왼쪽에 둔다.
and 연산의 경우 거짓일 확률이 높은 구문을 왼쪽에 둔다.
while( !a ) 보다는 while( a== 0 )을 쓰자 (직관성)
"code는 일기가 아니다."
프로그래밍 기본요소
분류와 선택
최대값 구하기
a b c => 변수를 만들고 그 곳에 a를 넣는다.
b를 가져와 a보다 크면 넣고 아니면 a를 유지한다.
c를 가져와 변수에 있는 값보다 크면 넣고 아니면 변수 값을 유지한다. (서바이벌 방식)
a b c => a와 b를 비교해서 큰 것과 c를 비교한다. (토너먼트 방식)
- 출처 : 독하게 시작하는 C 프로그래밍 (최호성, 루비 페이퍼)
'Programming > C language' 카테고리의 다른 글
Chapter 06, 07. 제어문, 반복문 (내용 요약) (0) | 2017.03.13 |
---|---|
Chapter 05. 연산자 응용 (문제 풀이) (0) | 2017.03.09 |
Chpater 04. 연산자 기본 (문제 풀이) (0) | 2017.03.07 |
Chapter 04. 연산자 기본 (내용 요약) (0) | 2017.03.07 |
chapter 03. 표준 입/출력 도구 (문제풀이) (0) | 2017.03.06 |