const 에 대해서..
글쓴이: macros / 작성시간: 화, 2007/01/02 - 11:08오전
1 #include <stdlib.h>
2 #include <iostream>
3
4 // qsort()의 인자로 쓰일 비교함수
5 inline int cmp(void *a, void *b)
6 {
7 int aa = *(int *)a;
8 int bb = *(int *)b;
9 return (aa < bb) ? -1 : (aa > bb) ? 1 : 0;
10 }
11
12 int main()
13 {
14 const int size = 1e5;
15 int array[size]; // 100,000개의 정수로 이루어진 배열
16
17 // 입력
18 int n = 0;
19 while (std::cin >> array[n])
20 {
21 n++;
22 if(n==5) break;
23 }
24
25 // 정렬
26 qsort(array, n, sizeof(int), cmp);
27
28 // 출력
29 for (int i = 0; i < n; i++)
30 std::cout << array[i] << std::endl;
31 }아주 간단한 정수 입력을 받아 정렬하는 소스입니다.
여기서 5 line 에 "inline int cmp(void *a, void *b)" 이 부분을
"inline int cmp(const void *a, const void *b)" 로 해줘야
컴파일이 되는데요..
Forums:


qsort의 원형이.
qsort의 원형이
void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *elem1, const void *elem2 ) );
이것이기 때문에 cmp함수 인자에도 const를 붙여야 형이 같아지므로 에러(혹은 warning)를 발생 시킨 듯 합니다.
언 제 나 멋 진
댓글 달기