El documentation for GCC's __attribute__((...))
syntax indica que los atributos deben estar rodeados por paréntesis dobles, pero no proporciona un fundamento para esta decisión de diseño.¿Por qué la sintaxis __attribute __ ((...)) de GCC usa doble paréntesis?
¿Qué razón práctica habría causado que los diseñadores de GCC lo requieran? ¿Tiene algo que ver con el manejo del preprocesador de doble paréntesis?
Es un comportamiento indefinido definir un nombre de macro que comience con un doble guión bajo. – dreamlax
@dreamlax, lo sé. No dije que uno debería hacer esto, pero creo que fue la idea detrás de eso. –