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)를 발생 시킨 듯 합니다.
언 제 나 멋 진
댓글 달기