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?
12
A
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);
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
- 1. C# odniesione nazw ukryte Klasa Przestrzeń nazw
- 2. Jak emulować zamknięcia w c
- 3. Uzyskaj przestrzeń nazw z pliku xml C#
- 4. Jak określić przestrzeń nazw funkcji?
- 5. Przestrzeń nazw C++ i zmienne statyczne
- 6. „szablonów” przestrzeń nazw
- 7. Przestrzeń nazw Xml i C# csproj
- 8. Przestrzeń nazw rakiety/bazy
- 9. Jak zadeklarować przestrzeń nazw w WPF XAML?
- 10. Jak utworzyć przestrzeń nazw w skrypcie PowerShell?
- 11. Jak wyświetlić przestrzeń nazw w języku UML?
- 12. Zagnieżdżona anonimowa przestrzeń nazw?
- 13. Przestrzeń nazw XML domyślnie/dziedziczenie
- 14. Jak nazwać przestrzeń nazw mojego nowego projektu?
- 15. Jak mogę emulować destructuring w C++?
- 16. Roslyn: Jak uzyskać Przestrzeń Nazw DeklaracjiSyntax z Roslyn C#
- 17. Jak mogę odzyskać przestrzeń nazw do łańcucha C#
- 18. Jak utworzyć przestrzeń nazw w języku Python (argparse.parse_args)?
- 19. Przestrzeń nazw JavaScript z jQuery
- 20. Przestrzeń nazw xmlns łamiąc lxml
- 21. Jak usunąć przestrzeń nazw na datamember?
- 22. Przestrzeń nazw Android Custom Control
- 23. Co to jest przestrzeń nazw w aerospike
- 24. Jaxb ignoruje przestrzeń nazw w unmarshalling
- 25. Przestrzeń nazw PHP - rozwiązanie obejmujące wszystkie klasy w przestrzeni nazw
- 26. asp.net mvc - Przestrzeń nazw w widoku
- 27. Jak emulować Event.timeStamp
- 28. nrepl.el i leiningen 2 domyślna przestrzeń nazw?
- 29. Naśladować/emulować zachowanie big-endian w C?
- 30. Jak mogę znaleźć przestrzeń nazw elementu w PHP DOM?
Działa w celu izolowania niezależnych grup, ale nie obsługuje funkcji Argument Dependent Lookup i aliasingu przestrzeni nazw. –
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. –