Was ist der Zweck der Dummy-Addition in diesem Makro "Anzahl der Elemente"?

8

Visual C ++ 10 wird mit stdlib.h geliefert, das unter anderem dieses Juwel enthält:

%Vor%

ein geschickter Vorlagentrick zum Ableiten der Array-Größe und verhindern, dass Zeiger in __countof übergeben werden .

Was ist der Zweck von + 0 in der Makrodefinition? Welches Problem löst es?

    
sharptooth 13.03.2012, 06:03
quelle

2 Antworten

14

Zitat STL von hier

  

Ich habe diese Änderung vorgenommen; Normalerweise hacke ich das CRT nicht, aber dieses war es   trivial. Das + 0 stummt eine unechte "Warnung C6260: sizeof * sizeof   ist normalerweise falsch. Wollten Sie eine Zeichenzahl oder ein Byte verwenden?   zählen? "aus / analysieren, wenn jemand schreibt _countof (arr) * sizeof (T).

    
Asha 13.03.2012, 06:15
quelle
2
  

Was ist der Zweck von + 0 in der Makrodefinition? Welches Problem tut   es lösen?

Ich glaube nicht, dass es irgendein Problem löst. Es könnte verwendet werden, um einige Warnungen, wie in einer anderen Antwort erwähnt, zum Schweigen zu bringen.

Zu beachten ist, dass die Array-Größe zur Kompilierzeit (persönlich finde ich sie besser lesbar) eine andere Möglichkeit ist:

%Vor%

[P.S .: Betrachten Sie dies als Kommentar]

    
iammilind 13.03.2012 06:23
quelle