Esta es probablemente más una pregunta de programación general que una pregunta de electrónica, pero como este grupo abarca la programación de sistemas integrados hasta cierto punto, la responderé aquí.
El estándar C promete que el código puede usar cualquier identificador sintácticamente válido sin riesgo de conflicto con cualquier identificador definido por la implementación, siempre que:
- El código de usuario no usa la sintaxis
#include <name>
para ningún encabezado no definido por el estándar.
- El identificador no entra en conflicto con ninguno de los que se mencionan en la norma como asociados con los encabezados incluidos mediante la sintaxis mencionada anteriormente.
- El identificador no comienza con dos guiones bajos.
Un compilador que cumpla con los estándares debe permitir que un programa C declare una variable, función o tipo llamado bit
. Si un compilador definiera un tipo bit
, pero el código de usuario intentara asignar algún otro significado a ese nombre, los dos usos entrarán en conflicto; Los compiladores que cumplen con los estándares no pueden tener tales conflictos con el código que cumple con los estándares.
Al usar __bit
en lugar de bit
como nombre para su propio tipo de bit, el compilador se asegura de que el nombre no genere ningún conflicto inadmisible. Si bien tal nombre aún podría entrar en conflicto con un identificador definido por el usuario con el mismo nombre, el estándar permitiría que una implementación haga lo que quiera en caso de un conflicto que involucre dicho nombre. La mayoría de los compiladores se abstendrán de hacer algo totalmente malvado (p. Ej., Fingir compilar normalmente, pero generando un código que no haría nada más que "FRENK RULES" en todas las UARTs adjuntas), pero el estándar permite a los autores del compilador hacer lo que sea. desea , con sin restricción alguna , en caso de que se produzcan tales conflictos de nombres).