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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <stdio.h> void bubble_sort(int arr[], int len,int (*sort_func)(int,int)) { int temp; for (int i = 0; i < len-1; i++) { for (int j = 0; j < (len - i) - 1; j++) { if (sort_func(arr[j],arr[j+1])) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int case1(int n1, int n2) { if (n1 > n2) return 1; else return 0; } int case2(int n1, int n2) { if (n1 < n2) return 1; else return 0; } int main() { int arr1[10] = { 3,5,1,2,5,8,3,2,5,7 }; bubble_sort(arr1, sizeof(arr1) / sizeof(int),case2); for (int i = 0; i < sizeof(arr1) / sizeof(int); i++) { printf("%d ", arr1[i]); } return 0; } | cs |
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <stdio.h> typedef int(*sort_func)(int, int); void bubble_sort(int arr[], int len,sort_func) { int temp; for (int i = 0; i < len-1; i++) { for (int j = 0; j < (len - i) - 1; j++) { if (sort_func(arr[j],arr[j+1])) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int case1(int n1, int n2) { if (n1 > n2) return 1; else return 0; } int case2(int n1, int n2) { if (n1 < n2) return 1; else return 0; } int main() { int arr1[10] = { 3,5,1,2,5,8,3,2,5,7 }; bubble_sort(arr1, sizeof(arr1) / sizeof(int),case1); for (int i = 0; i < sizeof(arr1) / sizeof(int); i++) { printf("%d ", arr1[i]); } return 0; } | cs |
전자코드를 typedef로 함수포인터 만들어서 후자로 했는데
9번째 if문 조건에 들어가는줄에 인자를 어떻게 넣어줘야함? 저렇게하니 오류나던데
typedef int(*sort_func)(int, int);
해놓고서
sort_func의 인자 int int를 어떻게 써서 해야하는지;;
히익 함슬람
sort_func는 타입의 이름임, 파라미터 변수 선언할 때 int a하듯이 sort_func f로 타입에 해당하는 값에 이름을 줘야 형식에 맞지
함수몰라서 헤메는데 왜 함슬람이죠 함극혐인정합니다~ 글고 저 코드는 제가짠것아니라 예제코드 그대로친것.. 함튼 typedef로 함수포인터 사용관련해선 안나와서 어캐 매개변수 넣야할지 몰라서 물어본것...
cc - 아 아 무슨말인지 알거같음 함고쳐보고옴
void bubble_sort(int arr[], int len,sort_func) => void bubble_sort(int arr[], int len,sort_func sf) 이렇게 해야되는거 아닌가용??
형타입처럼..
http://ideone.com/MVqebA
ㅎㅎ 잘되네요
형타입만이란걸 생각못하고 밑줄안쳐지니까 걍 저걸로 생각하고 해버림.. 형타입옆에 매개변수 이름짓고 해주니까 잘되네요
형std::function쓰자
void bubble_sort(int arr[], int len,sort_func test) 잘 고치셨네요!!! 굿잡
타입의 번역어가 형인데 형타입은 무슨 의미로 쓰는 거냐? 형이면 형이고 타입이면 타입이지...데이터타입이나 데이터형이면 말이 되는데 ㅎ허
역전앞
낙엽잎
형타입
맞춤법파개자가또...
흐린바다//그냥 일상적으로 형-타입, 형-타입 하다보니...글도 그렇게 적은거 같네요. 혼돈하셨다면 죄송합니다. 옆전앞/낙엽잎/형타입 ㅎㅎㅎ
함수포인터에 typedef 죽기 전에 한 번은 쓰려나 ㅋㅋ