Почему мы не можем объявить статическую переменную в структуре на языке программирования C? - PullRequest
7 голосов
/ 19 сентября 2010

Почему мы не можем объявить статическую переменную в структуре на языке программирования C?

Ответы [ 3 ]

13 голосов
/ 19 сентября 2010

В C ++ структура - это, по сути, класс со всеми открытыми членами, поэтому статическая переменная имеет здесь смысл.

В C структура - это непрерывный кусок памяти с полями.Статическая переменная не может быть создана без ее изменения (поскольку для реализации статики вам необходимо обратиться к одной ячейке памяти из всех структур этого типа), и это будет большой разницей в сложности без особой выгоды.

4 голосов
/ 19 сентября 2010

Поскольку C не является C ++.

Поскольку стандарт C не допускает этого.

Поскольку он не имеет значимой интерпретации в C.

0 голосов
/ 25 июля 2017

Потому что в c мы не можем получить доступ к статической переменной с именем структуры.В c ++ мы можем получить доступ к статической переменной-члену с именем класса, как показано ниже.

ClassName :: staticVariableName

Структура C не предоставляет такой возможности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...