À l'aide de ma quête personnelle pour remplir SO avec des questions D (= p), j'ai rencontré un autre problème; initialiser un tableau de structures globalement. Observer:Comment initialiser un tableau global de structures dans D?
struct A
{
int a;
float b;
}
A[2] as;
as[0] = {0, 0.0f};
as[1] = {5, 5.2f};
void main() {}
Résultats dans:
$ dmd wtf.d
wtf.d(8): no identifier for declarator as[0]
wtf.d(9): no identifier for declarator as[1]
En regardant à travers la documentation à Digital Mars, je ne vois pas vraiment quoi que ce soit tout à fait évident pour moi, donc je tourner une fois de plus aux habitants courageux de Stack Overflow ! Je suppose que le message d'erreur n'a pas grand chose à voir avec le vrai problème, aussi sûrement que [0] est un identificateur (mais dmd
pense que c'est un déclarateur, lequel AFAICT regarde par-dessus le docs, ce n'est pas le cas) ?
D'oh. J'ai essayé ceci, mais j'ai oublié que j'utilisais D et que je faisais la syntaxe {{}, {}} de style C. Merci. – Bernard
+1, D attend des déclarations, et non des instructions, au niveau supérieur d'un module. Pour les valeurs initiales qui ne peuvent pas être calculées au moment de la compilation, vous pouvez également utiliser un initialiseur de module. – shambulator