Я использую Visual Studio. я пришел через код, как следующее:Точное определение непрозрачных типов и где именно их определения скрыты от пользователя и как заглянуть в них?
typedef struct A_def A;
typedef struct A *A_ptr;
A_def скрыта. Это непрозрачный тип. Это реализация скрыта, поэтому, когда я перехожу к ее определению, ничего не происходит в VS.
Это потому, что реализация/определение скрыто в DLL-файле или .lib-файле? И если да, то как я могу подтвердить наличие определения A_def с помощью dumpbin или аналогичного инструмента?
Кроме того, если это действительно непрозрачный тип почему он будет называться в будущем объявленной структуры или прямой декларации (такие определения непрозрачных типов бросают вокруг), так как он уже объявлен и только скрытый от пользователя?
Не существует файла C с определением struct A_def, уверяю вас. Он все еще компилируется. – Nothing
Эти файлы C, возможно, уже скомпилированы и являются частью готовой библиотеки. Однако вы не сможете использовать struct A_def в своем коде, если у вас нет его определения. Тем не менее, вы все равно можете использовать/объявить указатель на структуру A_def. – user1969104
Не могли бы вы предложить, какие расширения/типы могут иметь двоичные файлы? – Nothing