Ich googelte dafür und war überrascht, keine Richtlinien, Faustregeln, Stile usw. zu finden. Wenn man eine (vorzeichenbehaftete oder nicht-signierte) Ganzzahl in C deklariert, kann man die Wahl treffen, nur zu verwenden, was auch immer der Prozessor für int definiert oder man kann die Breite angeben (zB uint16_t
, int8_t
, uint32_t
, usw.).Zur Größe Ihrer (u) ints oder nicht?
Wenn ich Desktop/dedizierte C-Programme mache, habe ich sehr auf die "nur die Standardwerte verwenden" geachtet, es sei denn wirklich wichtig für mich, Breite anzugeben (z. B. "dies ist eine 32-Bit-ID").
Nachdem ich in letzter Zeit mehr Mikrocontroller-Arbeit gemacht habe (Bild 18 und AVR), neige ich dazu, alles zu skalieren, nur weil man so platzbewusst wird.
Und jetzt arbeite ich an etwas Pic32-Code (kein OS), wo ich mich zwischen den beiden Extremen hin und her gerissen bin.
Ich bin gespannt, welche Rubrik (wenn überhaupt) Menschen formuliert haben, die ihnen helfen, zu entscheiden, wann sie ihre Ints und wann die Standardwerte verwenden sollen? Und warum?
Wenn ich nicht-wegwerfbare Software schreibe, neige ich dazu, die 'uint_least32_t' usw. Typen zu verwenden, außer wenn ich eine bestimmte Größe benötige. Dadurch kann ich sicher sein, dass eine Mindestgröße vorhanden ist, und der Compiler kann für die nächstgrößere Größe optimiert werden. –
Diese Frage ist eine Meinung einzuholen.Normalerweise reserviere ich die Größe von Integer für Datentypen, die über ein Netzwerk kommuniziert werden oder auf einer Festplatte gespeichert werden und später von einem anderen Programm gelesen werden können. – jxh
@jxh Ich folge der gleichen Praxis. Wenn es sich um einen Datentyp handelt, der nur für den internen Verbrauch einer eigenständigen Instanz (d. H. Nicht verteilt) des Prozesses bestimmt ist, der den Datentyp definiert, lasse ich den Compiler seine Meinung über die "beste Größe" für den Typ wählen. Für alles, was den Prozess verlässt (entweder für die persistente Speicherung oder für die Kommunikation zwischen Prozessen), würde ich mich lieber explizit mit der Datenbemessung befassen. Möglicherweise müssen Sie sich der Endian-Probleme bewusst sein, aber zumindest ist die Datengröße vorhersehbar. –