Abstruse #define-Makro, das in der Linux-Kernelquelle gefunden wurde

Der get_cpu_var-Marcro, der wie folgt definiert ist

<code> 29 #define get_cpu_var(var) (*({                           \
 30         extern int simple_identifier_##var(void);       \
 31         preempt_disable();                              \
 32         &__get_cpu_var(var); }))
</code>

scheint unverständlich zu sein. Ich nehme an, es war eine Art Funktionsmakro, das einen variablen Zeiger (basierend auf dem Sternchen) zurückgibt, oder ist es eine Art Funktionszeiger. Bin ich sogar in der Nähe? Kann mich jemand aufklären?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage