C언어 qsort() 함수 C언어에서는 Quick sort를 손쉽게 사용할 수 있도록 라이브러리가 구현되어 있습니다. 함수의 프로토타입은 다음과 같습니다. void qsort (void *base, size_t nel, size_t width, int (*compare)(const void *, const void *) 함수명 : qsort 필요헤더 : stdlib.h 리턴타입 : void 파라미터 : 정렬 할 배열 배열의 총 엘리먼트 개수 배열 한 개의 크기 비교를 수행할 함수의 포인터 리턴값 : 없음 함수역할 : 퀵 소트(Quick sort)를 이용하여 배열을 정렬한다. 헤더파일 stdlib.h가 미리 선언되 있어야 하구요. 참고로 void * 라는 것은 어떠한 타입이든 상관없이 포인터를 받을 수 있..
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) 오늘은 함수포인터에 대해서 포스팅을 하도록 하겠습니다.포인터가 무엇인지는 다들 아실텐데요, 특정 변수에 대한 메모리 주소를 담을 수 있는 변수를 포인터 변수라고 합니다. 그렇다면 함수포인터란, 특정 함수에 대한 메모리 주소를 담을 수 있는 것 이라고 정의할 수 있겠습니다. 함수포인터를 쓰는 이유는 무엇일까요? 프로그램 코드가 간결해집니다. 함수포인터를 배열에 담아서도 사용할 수 있으므로 중복되는 코드를 줄일 수 있습니다. 상황에 따라 해당되는 함수를 호출할 수 있으므로 굉장히 유용합니다. 그 외에도 함수 포인터를 이용하여 콜백함수를 구현할 수 있게 되는 등 편리하고 유용한 코드를 작성할 수 있게 됩니다. 우선 함수포인터의 모양에 대해 알아보도록 하겠..
리스트를 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라는 구조체가 존재합니다. 제가 만..
지난번에 이어 함수에 대한 기본을 포스팅하도록 하겠습니다. 지난번, 함수의 리턴타입이 void 타입일 때를 제외한 모든 타입이 리턴 값이 가진다고 얘기를 했습니다. 또한 반환할 수 있는 개수는 단 하나입니다. 변수 단위로 단 하나의 변수입니다. 만약 함수에서 처리되어 반환되어야 할 값이 2개 이상이라고 한다면, 포인터를 이용하여 파라미터로 넘겨서 처리를 하는 Call by reference 를 이용해야 합니다. 리턴 값이 2개 이상이 되는 경우 중 가장 흔하게 쓰이는 케이스로 Swap 함수가 있을 것입니다. 참고로 함수의 파라미터가 포인터형이나 더블 포인터형이면 해당 파라미터는 함수내에서 값이 바뀌어 올 가능성이 매우 큽니다. 이제 본격적으로 함수에 대해 알아보도록 하겠습니다. #include int f..
안녕하세요. 노루입니다. 며칠을 고민고민하다 첫 포스팅으로 c언어 함수에 대해 올리게 되는군요. 이런저런 계획을 세워 좋은 포스팅 할 수 있게 하겠습니다. Prototype 이라 함은, 여러가지 의미로 사용할 수 있겠지만 저는 그냥 '함수 원형' 이라는 표현을 씁니다. c언어 기본 라이브러리 헤더에서 제공하는 함수들을 우리는 수없이 많이 사용하고 있습니다. 우리는 이 각각의 함수들이 어떤식의 코드로 짜여져 있는지 알지 못합니다. 굳이 알 필요조차 없습니다. 하지만 아무리 라이브러리에서 수없이 많은 질좋고 편리한 함수를 제공한다고 하더라도 그 사용법을 모르면 사용할 수 없습니다. 그래서 우리는 사용법을 알기 위해 함수의 정의를 표현한 prototype을 찾아봅니다. 이 함수의 원형을 제대로 알고 있다면 더..
- Total
- Today
- Yesterday
- 리눅스 터미널 색상
- C언어
- git 설정
- 챗봇
- git proxy
- Zone.js
- ansi color
- 우분투 16.04
- vim
- 안시 색상
- NgZone
- itoa
- 스위프트
- 타입스크립트
- QT
- angular2
- zone
- typeScript
- 안시 컬러
- observable
- ECMA2015
- Rx.js
- terminal 색
- Swift
- ZONES
- Angular
- lua table
- JavaScript
- 폰트 조정
- qemu linux arm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |