2016-10-21 3 views
1

I eine Struktur mit einem eingebetteten Array-Puffer und ein Zeiger haben wollen, die entweder auf dem eingebetteten Puffer kann oder ein externer Puffer:Statisch initialisieren Feld zu einem anderen Feld Punkt

struct s { 
    char internal_buf[BUF_SIZE]; 
    char *active_buf; 
}; 

Ich mag würde statisch initialisieren (wie in einer globalen Variablen) diese Struktur, so dass das Feld active_buf auf die gleiche Struktur internal_buf Feld zeigt. Mit anderen Worten, etwas wie:

struct s inst = { 
    .internal_buf = {0}, 
    .active_buf = .internal_buf, // Doesn't compile unfortunately 
}; 

Ist das möglich? Ich benutze GCC.

+0

@EugeneSh .: Hä? Natürlich ist es möglich! Nur nicht mit der Syntax OP verwendet. – Olaf

+0

Warum versuchst du es nicht? Ihre Syntax ist falsch, aber es ist kein Problem. – Olaf

+0

@Olaf Wirklich? Dann werde ich etwas Neues lernen, oder mir fehlt die Bedeutung der Frage selbst. –

Antwort

0

Nun, schaltet sich die korrekte Syntax für diese out ist nur:

struct s inst = { 
    .internal_buf = {0}, 
    .active_buf = inst.internal_buf, // Works, address is known at compile-time 
}; 
Verwandte Themen