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) / si..
c언어 - 함수포인터 (Function pointer) 오늘은 함수포인터에 대해서 포스팅을 하도록 하겠습니다.포인터가 무엇인지는 다들 아실텐데요, 특정 변수에 대한 메모리 주소를 담을 수 있는 변수를 포인터 변수라고 합니다. 그렇다면 함수포인터란, 특정 함수에 대한 메모리 주소를 담을 수 있는 것 이라고 정의할 수 있겠습니다. 함수포인터를 쓰는 이유는 무엇일까요? 프로그램 코드가 간결해집니다. 함수포인터를 배열에 담아서도 사용할 수 있으므로 중복되는 코드를 줄일 수 있습니다. 상황에 따라 해당되는 함수를 호출할 수 있으므로 굉장히 유용합니다. 그 외에도 함수 포인터를 이용하여 콜백함수를 구현할 수 있게 되는 등 편리하고 유용한 코드를 작성할 수 있게 됩니다. 우선 함수포인터의 모양에 대해 알아보도록 하겠..
드림스파크 (https://www.dreamspark.com) 에서 학생들에게는 비주얼 스튜디오 최신버전을 무료로 제공한다는걸 얼마 전에 알게 되어서 새로운 버전에 대한 기대감에 비주얼 스튜디오 2013 을 다운받아 사용하고 있었습니다. 근데 비주얼 스튜디오 2013에서는 컴파일러가 강화되었는지, 예전 2010버전에서는 Warning 정도로 처리했던 unsafe 함수들에 대해 에러로 처리하여 컴파일이 되지 않습니다. 예를 들면 scanf, strcpy 같은 함수들을 사용하면 아래와 같은 오류창을 띄우며 컴파일에 실패합니다. "error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To dis..
리스트를 C언어로 작성하였습니다.이 리스트는 제일 앞의 노드(Front)와 제일 뒤의 노드(Back)에 포인터를 가지므로 스택 또는 큐로 사용할 수도 있습니다. 또한 리스트의 데이터들을 순서대로 소팅하는 함수도 구현되어 있습니다. 우선 소스코드들.. : 리스트의 코드 : 리스트의 헤더 : 테스트 한 main 코드 0. 구조체typedef struct _listnode{ int data; struct _listnode *next; } ListNode; typedef struct _list{ ListNode *front, *back; int size} List;구조체로 실제 노드로 구현된 ListNode와 노드의 시작과 끝을 가리키고 있는 List라는 구조체가 존재합니다. 제가 만..
- Total
- Today
- Yesterday
- QT
- 우분투 16.04
- 스위프트
- git 설정
- itoa
- vim
- angular2
- 폰트 조정
- terminal 색
- Angular
- typeScript
- Swift
- ZONES
- zone
- lua table
- C언어
- ECMA2015
- qemu linux arm
- NgZone
- 챗봇
- observable
- 안시 컬러
- ansi color
- Zone.js
- JavaScript
- Rx.js
- 리눅스 터미널 색상
- 안시 색상
- 타입스크립트
- git proxy
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |