2017-03-22 5 views
1

Ist es möglich, neu zu definieren, was ein int in C++ ist?Grundtypen in C++ neu definieren

Der Grund ist, weil ich einige Arduino-Code auf einem Computer ohne den Arduino-Code ändern möchte. Um zum Beispiel den Überlauf auf die gleiche Weise zu demonstrieren, müsste int 16-Bit statt der 32-Bit sein, die es auf meinem Rechner ist.

So im Wesentlichen möchte ich:

typedef int16_t int; 

Neben den gleichen Typen für andere Daten zu tun, die Arduino verwendet.

Allerdings glaube ich nicht, das ist möglich, da sie den Fehler (wenig überraschend) wirft:

error: cannot combine with previous 'type-name' declaration specifier 

Gibt es eine Weise, die ich dies leicht tun kann?

+0

wahrscheinlich ist der einzige Weg, es zu tun, ohne den Code zu berühren, mit einem Compiler-Schalter. Nicht sicher, welche, aber die GCC-Dokumente sollten es auflisten, wenn es existiert. –

+0

Sie könnten etwas Verrücktes tun wie '#define int int16_t' –

+0

@ VadaPoché Das Definieren eines Makros, das nach einem Schlüsselwort benannt ist, weist ein undefiniertes Verhalten auf. –

Antwort

1

Sie können int nicht neu definieren, aber sie können das Schreiben von Code Anschlag in Bezug auf int und eine Art Alias ​​verwenden wie:

typedef int int_type; 

int main() 
{ 
    int_type i = 0; 

    // etc... 
} 

Dann können Sie Typ wechseln, wenn Sie wollen:

typedef int16_t int_type; // now using 16 bit integers 
Verwandte Themen