Имеет ли C struct идентификатор во время выполнения? - PullRequest
4 голосов
/ 04 февраля 2012

Я могу сослаться на структуру C с ее именем.В любом случае, похоже, у него нет идентификатора во время выполнения.Я имею в виду, нет символа для структуры.Это было передано из заголовочных файлов.Так что я думаю, что могу поместить структуру с одним и тем же именем с разными полями в несколько файлов .c без дублирования имени.Или структура C имеет свой символ, поэтому я должен избегать дублированных имен?

PS.Я прошу прощения за неясные термины и вопрос, но в настоящее время я могу выразить это только так.Я обновлю свой вопрос, когда получу больше идей.

Ответы [ 2 ]

7 голосов
/ 04 февраля 2012

Если вы спрашиваете, можете ли вы повторно использовать имя структуры для обозначения разных структур в разных единицах перевода, ответ - да. Я бы не сказал, что это хорошая идея.

2 голосов
/ 04 февраля 2012

Теги Struct не имеют никакой связи (в частности, они не имеют внешней связи), поэтому вам не нужно беспокоиться о столкновениях пространства имен между различными единицами перевода.Фактически, их область видимости ведет себя почти (точно?) Так же, как переменная область видимости, так что вы даже можете сделать так, чтобы они были локальными для определенной функции или даже для конкретного блока в определенной функции.

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