На языке C предположим, что я определяю struct s
, внутри файла f.c
. Я не хочу, чтобы этот struct
был доступен другим людям, поэтому я не помещаю его в f.h
. В моем проекте у меня есть много других файлов, включая g.c
, который хочет получить доступ к struct s
в f.c
.Сделать структуру не в заголовке доступной для других файлов
Есть ли способ сделать это возможным? Я думаю, что s
должен быть глобальной переменной extern
, объявленной в g.h
. Они свяжутся во время компиляции. Я не уверен, возможно ли это или правильный/лучший способ сделать что-то подобное.
A Тип должен быть доступен до его использования. Вы либо используете заголовок, либо копируете вставить определение структуры. Невозможно разделить типы между единицами перевода. – DeiDei
Вам необходимо создать API в 'f.c', которые создают и изменяют эту структуру. Вы передаете 'void *' обратно вызывающему, чтобы он не мог получить доступ к своим полям. –
Определить *, доступный другим людям *. – rustyx