also das erste hab ich kapiert, danke für die antwort..#
beim zweiten muss ich nochmal nachfragen:
wie meinst du das mit
Da nach dem Ende der Struktur kein ";" steht
ist sie selber sofort der type.
? ist der name der struktur jetzt "sysmetrics"? und ist diese nun ein type?
versteh ich das richtig das der name der struktur der darauf folgende name des arrays ist? und wenn ich mich nicht täusche wird in meinem beispiel da die struktur auch gleich definiert (also mit werten gefüllt), und jene werte müssen anscheinend in der richtigen reihenfolge geschrieben werden, kann das sein?
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
struct
{
int iIndex ;
TCHAR * szLabel ;
TCHAR * szDesc ;
}
sysmetrics [] =
{
SM_CXSCREEN, // int iIndex
TEXT ("SM_CXSCREEN"), // szLabel
TEXT ("Screen width in pixels"), // szDesc
SM_CYSCREEN, // int iIndex
TEXT ("SM_CYSCREEN"), // szLabel
TEXT ("Screen height in pixels"), // szDesc
// ...
};
|
also wenn das so ist, dann ist es ja gar nicht so kompliziert! aber gleichzeitig hoffe ich das mir irgendjemand sagt dass das eine methode ist die veraltet ist, und dass es "schönere" methoden gibt.. das sieht ja grausig aus :lol:
EDIT
wenn ich schon da bin..
mit #define funktioniert das.. da ist es dem compiler 'egal' dass er sysmetrics eigentlich noch gar nicht kennt..
wenn ich NUMLINES aber klar als 'const long' deklariere, dann beklagt sich der compiler dass sysmetrics ein unbekannter bezeichner ist..
warum ist das so?
|
C-/C++-Quelltext
|
1
2
|
#define NUMLINES ((int) (sizeof sysmetrics / sizeof sysmetrics [0]))
const long NUMLINES = static_cast<long>((sizeof(sysmetrics) / sizeof(sysmetrics[0])));
|