Ich bin ziemlich neu in C und bin gerade erst auf Compound Literals gestoßen. Bitte korrigieren Sie mich, wenn meine Frage nicht korrekt ist.Initialize Variable Inside Composite Literal
Ich habe eine Struktur;
typedef struct
{
int someVal;
} foo;
Jetzt verstehe ich, dass dies mit dem folgenden initialisiert werden könnte.
int main()
{
foo thisFoo = (foo) { .someVal = 2 };
}
Meine Frage ist, konnte ich initialisieren someVal
mit einer Leeren Funktion?
void init(int *f);
int main()
{
foo thisFoo = (foo) { init(.someVal) }; // error: expected expression before '.' token
}
void init(int *f)
{
*f = 2;
}
Ich habe es geschafft, die Struktur selbst und ihre jeweiligen Elemente in einer Funktion ohne Probleme zu initialisieren aber war neugierig, ob dies eine Alternative (oder sogar vernünftig) Wahl ist?
'foo thisFoo; init (& thisFoo.someVal); '...' void init (int * f) { * f = 2; } ' – BLUEPIXY
@BLUEPIXY Ich glaube nicht, dass er will, dass die Funktion über die Struktur weiß. – Barmar
@Barmar sicher, ich modifizierte coment. – BLUEPIXY