svn commit: r247050 - head/lib/libc/stdlib

Giorgos Keramidas keramida at FreeBSD.org
Wed Feb 20 18:31:56 UTC 2013


Author: keramida (doc committer)
Date: Wed Feb 20 18:31:55 2013
New Revision: 247050
URL: http://svnweb.freebsd.org/changeset/base/247050

Log:
  Various improvements to the qsort(3) usage example:
  
  - Remove unused #include.
  - Do not cast away const.
  - Use the canonical idiom to compare two numbers.
  - Use proper type for sizes, i.e. size_t instead of int.
  - Correct indentation.
  - Simplify printf("\n") to puts("").
  - Use return instead of exit() in main().
  
  Submitted by:	Christoph Mallon, christoph.mallon at gmx.de
  Approved by:	gjb (mentor)
  Reviewed by:	stefanf
  MFC after:	1 week

Modified:
  head/lib/libc/stdlib/qsort.3

Modified: head/lib/libc/stdlib/qsort.3
==============================================================================
--- head/lib/libc/stdlib/qsort.3	Wed Feb 20 17:55:17 2013	(r247049)
+++ head/lib/libc/stdlib/qsort.3	Wed Feb 20 18:31:55 2013	(r247050)
@@ -220,7 +220,6 @@ and then prints the sorted array to stan
 .Bd -literal
 #include <stdio.h>
 #include <stdlib.h>
-#include <string.h>
 
 /*
  * Custom comparison function that can compare 'int' values through pointers
@@ -229,15 +228,10 @@ and then prints the sorted array to stan
 static int
 int_compare(const void *p1, const void *p2)
 {
-        int *left = (int *)p1;
-        int *right = (int *)p2;
+        int left = *(const int *)p1;
+        int right = *(const int *)p2;
 
-        if (*left < *right)
-                return (-1);
-        else if (*left > *right)
-                return (1);
-        else
-                return (0);
+        return ((left > right) - (left < right));
 }
 
 /*
@@ -247,14 +241,14 @@ int
 main(void)
 {
        int int_array[] = { 4, 5, 9, 3, 0, 1, 7, 2, 8, 6 };
-       const int array_size = sizeof(int_array) / sizeof(int_array[0]);
-       int k;
+       const size_t array_size = sizeof(int_array) / sizeof(int_array[0]);
+       size_t k;
 
-       qsort(&int_array, array_size, sizeof(int), int_compare);
+       qsort(&int_array, array_size, sizeof(int_array[0]), int_compare);
        for (k = 0; k < array_size; k++)
                 printf(" %d", int_array[k]);
-        printf("\\n");
-        exit(EXIT_SUCCESS);
+        puts("");
+        return (EXIT_SUCCESS);
 }
 .Ed
 .Sh ERRORS


More information about the svn-src-all mailing list