Puntero: declaración con colocación de asterisco
En C y C, las declaraciones de puntero varían en estilo, lo que a menudo causa confusión. Surge la pregunta: ¿debería colocarse el asterisco (*) junto al nombre del tipo o al nombre de la variable?
Convenciones de ubicación
Dos convenciones de ubicación principales son comunes:
Tipo adyacente: El asterisco se coloca al lado del tipo nombre.
someType* somePtr;
Variable-adyacente: El asterisco se coloca junto al nombre de la variable.
someType *somePtr;
Importancia y Preferencia
Si bien ambas convenciones conducen a la misma funcionalidad, la ubicación preferida depende de la preferencia personal y la lógica percibida.
La convención tipo adyacente enfatiza el tipo de la variable de puntero, indicando "el tipo de somePtr es un puntero a someType".
Por el contrario, el La convención adyacente a variable enfatiza el tipo de datos apuntados, indicando que "el tipo de datos apuntados por somePtr es someType".
¿La elección importa?
El compilador no distingue entre las dos convenciones. Sin embargo, algunos programadores creen que ubicaciones específicas mejoran la legibilidad o la claridad. Otros lo ven como una cuestión de estilo, similar a la sangría y la colocación de llaves.
Conclusión
En última instancia, la elección entre las dos convenciones de colocación es subjetiva. Si bien ambos son válidos e intercambiables, algunos programadores pueden encontrar uno más lógico o estéticamente más agradable que el otro. Comprender la semántica y las preferencias subyacentes puede ayudarle a informar su estilo de codificación y mejorar la comunicación con otros desarrolladores.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3