Gibt es einen Unterschied zwischen "static NSInteger const" und "static const NSInteger"?

8

Normalerweise habe ich gesehen, dass der Code zum Deklarieren von Konstanten genau wie folgt lautet:

%Vor%

Ich weiß, warum const hinter NSString * geschrieben werden sollte, aber ich bin mir nicht sicher, ob static NSInteger const kNum = 1; und static const NSInteger kNum = 1; gleich sind.

Gibt es einen Unterschied zwischen static NSInteger const und static const NSInteger ?

    
Wei 12.05.2014, 08:34
quelle

1 Antwort

18

Sie sind gleich. Ein konstanter Typ kann von einem gegebenen Typ "abgeleitet" werden, indem man einen der folgenden schreibt:

%Vor%

In diesem Fall spielt die Reihenfolge keine Rolle.

Dies sind variable Zeiger auf konstante Daten:

%Vor%

Dies bedeutet, dass der Zeiger geändert werden kann, aber die Daten nicht (außer Sie es umwandeln). Sie können es von rechts nach links als "Zeiger auf den konstanten -Typ " lesen.

Dies ist ein konstanter Zeiger auf variable Daten:

%Vor%

Beachten Sie die Bindung.

Dies bedeutet, dass der Zeiger nicht anderswo angezeigt werden kann, aber Sie können die Daten ändern. Sie können das von rechts nach links als "konstanten Zeiger auf type " lesen.

Es wird nicht überraschen, dass sowohl der Zeiger als auch die Daten konstant sind:

%Vor%     
marinus 12.05.2014, 08:54
quelle

Tags und Links