2012-08-09 15 views
5

ich ein typedef in meinem Code alsWidersprüchliche Erklärung

typdef unsigned int size_t; 

es mit dem in Konflikt definiert habe stddef

typedef __SIZE_TYPE__ size_t; 

Ich bin nicht sicher, wie dies zu umgehen, würde aber immer noch size_t halten möge in mein Code.

+3

eine Auswahl anderer Name oder in einen Namensraum. – jrok

+2

Wählen Sie einfach einen anderen Namen. –

+2

Wählen Sie einen anderen Namen. –

Antwort

17

Zwei drei Optionen:

1) einen anderen Namen Auswahl, ich glaube, du hast schon.

2) Verwenden Sie ein namespace:

namespace X 
{ 
    typedef long size_t; 
} 

und die Art, wie

X::size_t x; 

3) Hässlich, garantiert erhalten Sie gefeuert und mich downvoted:

typedef unsigned int my_size_t; 
#define size_t my_size_t 
+0

AHH. Ich mag deine Antwort am besten. Problem ist, dass dies für ein Projekt ist und der size_typedef-Name in meinem Code etwas ist, das ich nicht ändern kann. Vielen Dank! – user1496542

+0

@ user1496542 ok, siehe bearbeitete Antwort. –

+0

hahaha gut. Die Namespace-Antwort gewinnt immer noch für mich, aber danke nochmal! :) – user1496542

2

Es ist wahrscheinlich eine schlechte Idee zu versuchen, einen Typ neu zu definieren, der sich in einem der Standard-Header befindet. Was versuchst du zu erreichen? Warum willst du nicht die Standard size_t Definition verwenden?

+0

Dies sollte ein Kommentar sein, der sagt "Wählen Sie einen anderen Namen." : P – jrok

+0

LOL, du hast Recht, das scheint die Richtung zu sein, die Leute genommen haben. – jwismar

+0

Ich würde, wenn ich könnte, aber das ist für ein Projekt, dass ich diesen Namen nicht ändern kann. Danke für die Vorschläge :) – user1496542

Verwandte Themen