pointer-to-object casting και ISO C++
Giorgos Keramidas
keramida at ceid.upatras.gr
Wed Mar 1 14:42:22 EET 2006
On 2006-03-01 08:34, Πιστιόλης Κωνσταντίνος <pistiolis at ts.sch.gr> wrote:
> Δεν είναι καλή προσέγγιση να μετατρέπεις κάτι σε void * για να το
> περάσεις σε μια συνάρτηση. Δεν ξέρω τι θέλεις να κάνεις, αλλά στις
> περισσότερες περιπτώσεις δεν υπάρχει λόγος να απενεργοποιείς τους
> ελέγχους τύπων της C. Και καλά να μετατρέψεις δεδομένα.
Καλά, ας μην είμαστε κι απόλυτοι. Για παράδειγμα:
Είναι ένας καλός τρόπος όμως να γράψει κανείς `generic functions'.
Κι έχει ήδη χρησιμοποιηθεί στο ίδιο το standard της C:
| QSORT(3) FreeBSD Library Functions Manual QSORT(3)
|
| NAME
| qsort, qsort_r, heapsort, mergesort -- sort functions
|
| LIBRARY
| Standard C Library (libc, -lc)
|
| SYNOPSIS
| #include <stdlib.h>
|
| void
| qsort(void *base, size_t nmemb, size_t size,
| int (*compar)(const void *, const void *));
| [...]
|
# | STANDARDS
# | The qsort() function conforms to ISO/IEC 9899:1990 (``ISO C90'').
|
| FreeBSD 7.0 September 30, 2003 FreeBSD 7.0
Δεν υπάρχει καλύτερος τρόπος να γραφτεί μια generic sorting function, που
να μη χρησιμοποιεί `void *' pointers και να μην είναι υποχρεωτικό να
φτιάξει κανείς μια ειδική sorting function για κάθε δυνατό τύπο που υπάρχει
ή θα υπάρξει ποτέ.
More information about the Linux-greek-users
mailing list