Definiert den Typ x
und ein Array X
dieses Typs.C: Wie kann man sizeof (array)/sizeof (struct) für externe Arrays ermitteln?
x.h:
typedef struct _x {int p, q, r;} x;
extern x X[];
separate Datei mit dem riesigen Hupen Array X
zu halten.
x.c:
#include "x.h"
x X[] = {/* lotsa stuff */};
Jetzt möchte ich X
verwenden:
main.c:
#include "x.h"
int main()
{
int i;
for (i = 0; i < sizeof(X)/sizeof(x); i++) /* error here */
invert(X[i]);
return 0;
}
main.c
nicht kompiliert; der Fehler ist:
error: invalid application of ‘sizeof’ to incomplete type ‘struct x[]’
Wie erhalte ich die Größe der X
ohne es zu hartzucodieren?
wenn x eine Struktur Sie haben in der Regel sizeof (struct x) –
keine Notwendigkeit angeben Struktur zu verwenden, wenn Sie – cppguy