¿Qué significa doble guión bajo (__const) en C?

extern int ether_hostton (__const char *__hostname, struct ether_addr *__addr)
 __THROW;

Encontré la definición de la función anterior en /usr/include/netinet/ether.h en un cuadro de Linux.

¿Alguien puede explicar qué significan los guiones bajos delante de const (keyword), addr (identifier) ​​y, por último, __THROW?

Respuestas a la pregunta(4)

Su respuesta a la pregunta