Gibt es einen C ++ - Stilleitfaden, der sich mit numerischen Literalsuffixen beschäftigt?

8

In allen C ++ - Stilleitfäden, die ich gelesen habe, habe ich nie Informationen über numerische Literalsuffixe gesehen (d. h. 3.14f , 0L usw.).

Fragen

  1. Gibt es da draußen einen Style Guide, der über die Nutzung spricht, oder gibt es eine allgemeine Konvention?

  2. Ich habe gelegentlich das Suffix f in der Grafikprogrammierung. Gibt es einen Trend bei der Verwendung in der Art der Programmierdomäne?

Jesse Good 04.05.2012, 23:23
quelle

4 Antworten

4

Es gibt keinen allgemeinen Styleguide, den ich gefunden habe. Ich verwende Großbuchstaben und ich bin wählerisch über die Verwendung von F für Float-Literale und L für lange Doppel. Ich benutze auch die passenden Suffixe für integrale Literale.

Ich nehme an, Sie wissen, was diese Suffixe bedeuten: 3.14F ist ein float Literal, 12.345 ist ein doppeltes Literal, 6.6666L ist ein langes doppeltes Literal.

Für Ganzzahlen: U ist unsigned , L ist long , LL ist long long . Die Reihenfolge zwischen U und L s spielt keine Rolle, aber ich gebe immer UL ein, weil ich solche Variablen zB unsigned long deklariere.

Wenn Sie eine Variable eines Typs einem Literal eines anderen Typs zuweisen oder ein numerisches Literal eines Typs für ein Funktionsargument eines anderen Typs bereitstellen, muss ein Cast stattfinden. Das Verwenden des richtigen Suffixes vermeidet dies und ist in der gleichen Weise nützlich wie static_cast zum Aufruf von Casts nützlich ist. Die konsistente Verwendung von numerischen Literalsuffixen ist ein guter Stil und vermeidet numerische Überraschungen.

Menschen unterscheiden sich darin, ob Groß- oder Kleinschreibung am besten ist. Wähle einen Stil, der dir gut steht und konsistent ist.

    
emsr 04.05.2012, 23:33
quelle
8

Die einzige etablierte Konvention (die ich irgendwie kenne) ist, dass ich immer L anstelle von l verwende, um zu vermeiden, dass sie mit 1 verwechselt wird. Darüber hinaus geht es darum, das zu verwenden, was Sie brauchen, wenn Sie es brauchen.

Beachten Sie auch, dass C ++ 11 benutzerdefinierte Literale mit benutzerdefinierten Suffixen erlaubt.

    
Jerry Coffin 04.05.2012 23:31
quelle
3

Der CERT C-Codierungsstandard empfiehlt die Verwendung von Großbuchstaben:

  

DCL16-C. Verwenden Sie "L", nicht "l", um einen langen Wert anzugeben

     

Kleinbuchstabe l (ell) kann leicht mit der Ziffer 1 (Eins) verwechselt werden. Dies kann besonders verwirrend sein, wenn angegeben wird, dass eine ganzzahlige Literalkonstante ein langer Wert ist. Diese Empfehlung ähnelt DCL02-C. Verwenden Sie visuell eindeutige Bezeichner .

     

Ebenso sollten Sie Großbuchstaben LL anstelle von Kleinbuchstaben ll verwenden, wenn Sie angeben, dass eine ganzzahlige Literalkonstante ein langer Wert ist.

    
sergej 05.12.2016 15:39
quelle
-1

Die Websuche nach "numerischen C ++ - Suffixen" gibt Folgendes zurück:

Ссылка

Ссылка

Ссылка

Sind Sie das, wonach Sie suchen?

    
Adam Liss 04.05.2012 23:31
quelle

Tags und Links