Как получить доступ к элементу структуры в другом файле? есть в файл позволяет говорить 1.cpp и файле 2.cpp и я comiling как файл сразу, как GCC 1.cpp файле 2.cpp, но я получаю сообщение об ошибке, как показано нижеКак получить доступ к элементу структуры в другом файле?
1. warning: ‘struct st’ declared inside parameter list [enabled by default]
2. warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
3.dereferencing pointer to incomplete type
, пожалуйста, помогите мне исправить мой код ниже
1.c
#include<stdio.h>
struct st
{
int s;
char ch[20];
};
void fn(struct st *);
int main()
{
struct st var={2,"pravu"};
fn(&var);
}
2.c
#include<stdio.h>
void fn(struct st *p)
{
printf("%d\n",p->x);
printf("%s\n",p->ch);
}
Я компиляции в GCC 1.С 2.c?
спасибо вам много сэр –
Обратите внимание, что (а) заголовок должен иметь охрану в нем, чтобы защитить его от нескольких включение, (b) заголовок не должен включать '', поскольку ни одно из объявлений в заголовке не зависит от declaratios от '' (но это изменилось бы, если, например, у вас был 'void ffn (FILE * fp, struct st * p); 'как объявление - тогда вам понадобится' #include '. Заголовки должны быть автономными и идемпотентными. Автономный означает, что если программе нужны услуги, объявленные заголовком, она включает в себя th e, и никакой другой заголовок не должен быть включен кодом, использующим его. _ [... продолжение ...] _ –
_ [... продолжение ...] _ Idempotence означает, что заголовок может быть включен несколько раз, и компиляция не будет прерываться. Обычно это означает, что он защищен '#ifndef HEADER_H_INCLUDED' и' #define HEADER_H_INCLUDED' вверху и '#endif // HEADER_H_INCLUDED' внизу. Имя, выбранное для макроса, должно быть уникальным - некоторые используют UUID, например, но в остальном не критичны. –