Как можно было эмулировать пространство имен в C?

В C++ можно было бы использовать пространство имен для хранения независимых групп, работающих в той же кодовой базе от непреднамеренного создания функций с тем же именем и таким образом созданием конфликта. Мой вопрос, прежде чем идея пространства имен выходит, как можно было бы эмулировать пространство имен в C.

12
задан Cascabel 20 March 2010 в 00:33
поделиться

3 ответа

Путем другого наименования вещей, например:

void namespace_group_function();

gtk + является ярким примером этого традиционного стиля:

GtkWidget* gtk_window_new(GtkWindowType type);
18
ответ дан 2 December 2019 в 05:54
поделиться

Используйте общий префикс для имен всех ваших общедоступных символов, поэтому foo :: bar становится foo_bar . добавление префикса ко всем именам символов - это, по сути, то, что делают пространства имен. (а также преобразование символов, используемых без префикса, в объявления с префиксом, что очень полезно)

6
ответ дан 2 December 2019 в 05:54
поделиться

Для неэкспортированных символов каждый модуль помещается в отдельный файл.

Для экспортируемых символов обычно применяется префикс. Обычны две или три буквы.

2
ответ дан 2 December 2019 в 05:54
поделиться