티스토리 뷰
sizeof가 어떤 구조체나, 배열의 전체 사이즈의 byte를 구해준다면, _countof 는 배열의 개수를 구하는 매크로 이다.
* _countof는 비주얼스튜디오에서만 사용이 가능하다.
다음과 같은 예제를 보자.
int arr[10]
int 형 타입의 배열을 선언한다.
이 배열을 가지고 sizeof 와 _countof 를 사용한다면,
sizeof(arr) 의 결과 값은 40 (4 바이트인 int 타입이 10개)
_countof(arr) 의 결과 값은 10 (10개의 배열)
이 된다.
_countof는 비주얼 스튜디오에서만 사용 가능한데, 사실 단순한 매크로일 뿐이기 때문에 우분투에서 사용하려면 간단히 매크로를 풀어주면 된다.
#define _countof(_Array) sizeof(_Array) / sizeof(_Array[0])
매크로는 위와 같이 되어있다. 간단하게 분석 한 번 해보자면, 배열의 총 사이즈를 엘리먼트 한 개의 사이즈로 나눠줌으로써 엘리먼트의 개수(배열의 개수)를 구하는 것이다.
그럼 이제 _countof(arr) 대신, sizeof(arr) / sizeof(arr[0]) 를 해줘도 똑같은 얘기가 된다.
C 표준이 아니어서 사용할 수 없었던 _countof 매크로, 이제는 어떤 플랫폼에서도 사용할 수 있다.
'C, C++ > C, C++' 카테고리의 다른 글
c/c++ sprintf, snprintf 함수 (13) | 2014.01.21 |
---|---|
C언어 qsort() 함수 (6) | 2014.01.02 |
c언어 - 함수포인터 (Function pointer) (32) | 2013.12.30 |
c언어 함수에 대한 기본 (2) (0) | 2013.06.14 |
c언어 함수에 대한 기본 (1) (0) | 2013.06.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- itoa
- ansi color
- git 설정
- 타입스크립트
- 폰트 조정
- Zone.js
- 안시 컬러
- angular2
- 스위프트
- zone
- C언어
- Angular
- ZONES
- Rx.js
- ECMA2015
- vim
- 리눅스 터미널 색상
- NgZone
- git proxy
- 챗봇
- Swift
- observable
- QT
- lua table
- typeScript
- qemu linux arm
- 안시 색상
- terminal 색
- 우분투 16.04
- JavaScript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함