[ekg2-devel] lists3 a sprawdzanie typów [było: r4089 - trunk/ekg: trunk/ekg/dynstuff.h]
Wiesław Ochmiński
wiechu w wiechu.com
Pią, 11 Lip 2008, 23:58:24 CEST
On Fri, Jul 11, 2008 at 04:51:50PM +0100, Marcin Owsiany wrote:
> On Thu, Jul 10, 2008 at 12:41:09AM +0200, SVN commit wrote:
> > +#define LIST_ADD_SORTED2(list, data, comp) list_add_sorted3((list_t *) (void *) list, (list_t) data, (void *) comp)
>
> Czy rzutowanie przez (void *) nie oznacza w praktyce, że pozbawiamy się
> sprawdzania typu?
Wcześniejsza konstrukcja:
-#define LIST_ADD_SORTED2(list, data, comp) list_add_sorted3((list_t *) list, (list_t) data, (void *) comp)
też nie sprawdzała żadnego typu tylko rzutowała list typu cokolwiek_t na
(list_t *). Konstrukcja w (void *) jest o tyle lepsza, że w czasie
kompilacji nie daje ostrzeżenia:
warning: dereferencing type-punned pointer will break strict-aliasing rules
Pozdrawiam,
Wiechu
--
Wiesław Ochmiński, Polska Północna, Malbork.
Więcej informacji o liście dyskusyjnej ekg2-devel