Pregunta

Cuando Eclipse crea un nuevo archivo (.C o .h archivo) en un proyecto C, el editor siempre crea automáticamente un #define en la parte superior del archivo así:Si el archivo se llama 'myCFile.c' habrá un #define al comienzo del archivo como este

#ifndef MYCFILE_C_
#define MYCFILE_C_

También he visto a otros editores hacer esto (creo que Codewright y SlikEdit).El #defines No parece hacer nada por el editor, ya que puedo eliminarlos sin ningún problema y no se me ocurre ninguna razón por la cual I querría usarlos.¿Alguien sabe por qué están ahí?

¿Fue útil?

Solución

es para protegerse contra múltiples definiciones.

Otros consejos

A veces las personas incluyen un archivo .c completo en otros archivos .c (o incluso archivos .h), por lo que tiene exactamente el mismo propósito de evitar que un archivo de inclusión se incluya varias veces y que el compilador genere múltiples errores de definición.

Es extraño, sin embargo, que el comportamiento predeterminado de un editor sea poner esto en cualquier cosa que no sea un archivo .h.Esta sería una característica que rara vez se necesita.

Una versión más moderna de esto es usar:

#pragma once

Es bastante inusual ver esto en un archivo .c; normalmente está solo en los archivos de encabezado.

Creo que es un retroceso de los problemas de inclusión de C, donde se incluirían múltiples copias de la fuente, a menos que sea meticuloso con las cadenas de inclusión (un archivo incluye otros).Comprobar si un símbolo está definido e incluirlo solo si el símbolo está definido era una forma de solucionar este problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top