C : Как реализован статический член класса?

#c

#c

Вопрос:

Где хранятся статические элементы данных? Существует ли какая-то таблица статических членов (как в «таблице виртуальных методов»)? Я провел эксперимент — похоже, что статические члены вообще не влияют sizeof() . Означает ли это, что все ссылки на статические члены преобразуются в фиксированный адрес?

Ответ №1:

Стандарт C не обеспечивает принудительного применения конкретной реализации. Но обычно статические члены класса будут реализованы аналогично «свободной» статике.

Однако ваше замечание о том, что sizeof статические члены не должны быть затронуты, верно.

Ответ №2:

Статические члены в C реализованы точно так же, как статические нечлены как в C , так и в C. «таблицы статических членов» не существует.