Namespaces и префиксы имён в C
Namespace C++ создаёт scope; библиотеки C добавляют prefix к публичным идентификаторам.
Что такое Namespaces и префиксы имён в C?
Namespace C++ создаёт scope; библиотеки C добавляют prefix к публичным идентификаторам.
Предотвращайте конфликты символов.
Важные моменты
- Сначала поймите механизм на C.
- Используйте RAII и value semantics для ownership.
- Предпочитайте type-safe абстракции макросам и cast.
Примеры кода на C и C++
main.c
#include <stdio.h>
int math_square(int value) {
return value * value;
}
int main(void) {
printf("%d\n", math_square(7));
}
49
C++
main.cpp
#include <iostream>
namespace math {
int square(int value) {
return value * value;
}
}
int main() {
std::cout << math::square(7) << '\n';
}
49
Сравнение C и C++
Префикс C — соглашение; namespace C++ контролируется компилятором и поддерживает aliases и qualified lookup.
C
C использует префиксы, callbacks, макросы и context-структуры.
C++
Язык предоставляет scoped и type-safe абстракции.
Практические задания
Запустите обе версии и изменяйте их, сравнивая гарантии языков.
- Сначала напишите механизм на C.
- Замените ручную очистку на RAII.
- Измерьте allocation и virtual dispatch.