2010-03-20 20 views
12

W C++ można używać przestrzeni nazw, aby utrzymać niezależne grupy pracujące w tej samej bazie kodu, nieumyślnie tworząc funkcje o tej samej nazwie iw ten sposób tworząc konflikt. Moje pytanie brzmi, zanim idea nazw wychodzi, jak można naśladować nazw w CJak można emulować przestrzeń nazw w C?

Odpowiedz

18

Nazywając rzeczy inaczej, np:

void namespace_group_function(); 

gtk+ jest najlepszym przykładem tego tradycyjnego stylu:

GtkWidget* gtk_window_new(GtkWindowType type); 
+0

Działa w celu izolowania niezależnych grup, ale nie obsługuje funkcji Argument Dependent Lookup i aliasingu przestrzeni nazw. –

+0

Bardzo podoba mi się fakt, że prefiks biblioteki dla klas jest CamelCased, podczas gdy jest on podkreślony dla funkcji. Sprawia, że ​​rzeczy wyglądają ładnie i spójnie. –

2

Dla symboli, które nie zostały wyeksportowane, umieszczasz każdy moduł w oddzielnym pliku.

W przypadku eksportowanych symboli zazwyczaj stosuje się prefiks. Dwie lub trzy litery są wspólne.

6

Używaj wspólnego przedrostka dla nazw wszystkich twoich publicznych symboli, więc foo::bar staje się foo_bar. rzucanie prefiksu na wszystkie nazwy symboli jest w zasadzie tym, co robią przestrzenie nazw. (a także rozróżnianie symboli używanych bez prefiksu na deklaracje z prefiksem, co jest bardzo pomocne)

Powiązane problemy