2010-03-20 15 views
12

En C++ se podría usar el espacio de nombres para mantener a los grupos independientes trabajando en la misma base de código creando inadvertidamente funciones con el mismo nombre y creando así un conflicto. Mi pregunta es, antes de que la idea de espacio de nombres que sale, cómo podría emular un espacio de nombres en C.¿Cómo se puede emular el espacio de nombres en C?

Respuesta

18

Por nombrar las cosas de manera diferente, por ejemplo:

void namespace_group_function(); 

gtk+ es un buen ejemplo de este estilo convencional:

GtkWidget* gtk_window_new(GtkWindowType type); 
+0

Funciona para aislar grupos independientes, pero no es compatible con Argument Dependent Lookup y aliasing del espacio de nombres. –

+0

Me gusta mucho el hecho de que el prefijo de la biblioteca para las clases es CamelCased, mientras que está subrayado para las funciones. Mantiene las cosas bien y consistentes. –

2

Para los símbolos no exportados, ponga cada módulo en un archivo separado.

Para los símbolos exportados generalmente se aplica un prefijo. Dos o tres letras son comunes.

6

Use un prefijo común para los nombres de todos sus símbolos públicos, por lo que foo::bar se convierte en . lanzar un prefijo en todos los nombres de símbolos es esencialmente lo que hacen los espacios de nombres. (y también para resolver símbolos usados ​​sin el prefijo para las declaraciones que tienen el prefijo, que es bastante útil)

Cuestiones relacionadas