Каковы плюсы и минусы непрозрачных указателей по сравнению с номерами идентификаторов с использованием языка программирования C?

В настоящее время я использую непрозрачные указатели в качестве стандартного метода инкапсуляции, но, глядя на API OpenGL, я думаю, что использование идентификаторов может быть лучшим выбором. Я хотел бы получить совет от опытных программистов на Си (я активно использую язык только ~ 2 года).

Вот мои первоначальные мысли, которые я хотел бы подтвердить или исправить.

Возможные плюсы для Id номеров:

  • Использование пулов объектов / памяти в реализации довольно просто, если использовать идентификаторы

  • Идентификационный номер не обязательно должен отображаться в системной памяти (в случае GL может ссылаться на графическую память)

Возможные минусы для Id номеров:

  • Делает реализацию немного сложнее

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

Я полагаю, вы могли бы ввести определение MyObjectHandle, чтобы библиотека могла переключаться между номером идентификатора и непрозрачным указателем.

Вопрос в том,каковы плюсы и минусы непрозрачных указателей по сравнению с номерами идентификаторов, использующими язык программирования C?

0 ответов

Другие вопросы по тегам