extern struct - ???
От: Diamus  
Дата: 25.08.04 10:53
Оценка:
Здравствуйте
как переменные пользовательского типа (структура) сделать видимыми для всех процедур.
с ув. Дмитрий
Re: extern struct - ???
От: Lorenzo_LAMAS  
Дата: 25.08.04 10:56
Оценка:
Объявить их как глобальные.
Of course, the code must be complete enough to compile and link.
Re[2]: extern struct - ???
От: Diamus  
Дата: 25.08.04 10:58
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

L_L>Объявить их как глобальные.


Как правильно? А то у меня все ругается (C++ Builder).
Re[2]: extern struct - ???
От: Diamus  
Дата: 25.08.04 11:02
Оценка:
У меня так в 1 модуле:

struct STATUSData
{
bool SendError;
bool ReceiveError;
unsigned int KolByte;
unsigned char Buffer[255];
};

STATUSData STATUS_RS;

во втором:
extern struct STATUSData STATUS_RS;

[C++ Error] recieve.cpp(60): E2315 'SendError' is not a member of 'STATUSData', because the type is not yet defined
Re[3]: extern struct - ???
От: Lorenzo_LAMAS  
Дата: 25.08.04 11:03
Оценка:
Ну так для начала то ты бы привел фрагмент того, на что ругается. Ну можно, допустим, так:
//global_names.h

struct A
{
   int i_;
   int j_;
};

extern A a; //объявление, не определение

//glob1.cpp
#include "global_names.h"

A a;

//user1.cpp

#include "global_name.h"

void fun()
{
   a.i_ = 0;
}

void fun1()
{
   a.j_ = 1;
}

//user2.cpp
#include "global_name.h"

void fun3()
{
   a.i_ = 666;
}
Of course, the code must be complete enough to compile and link.
Re[3]: extern struct - ???
От: Lorenzo_LAMAS  
Дата: 25.08.04 11:08
Оценка:
Модулем ты называешь cpp файл? Ну так значит там, где ты используешь свой STATUSData, ты просто не видишь определения структуры, вот это вот extern struct STATUSData STATUS_Rep; попросту объявление объекта неполного типа, и никаких членов структуры здесь не получится использовать
Of course, the code must be complete enough to compile and link.
Re[4]: extern struct - ???
От: Diamus  
Дата: 25.08.04 11:13
Оценка:
Спасибо!
Re: extern struct - ???
От: ZeusSon  
Дата: 25.08.04 11:42
Оценка:
Здравствуйте, Diamus, Вы писали:

D>Здравствуйте

D>как переменные пользовательского типа (структура) сделать видимыми для всех процедур.
D>с ув. Дмитрий

Можно попробовать объявить в собственном хидере (my_types.h) и включить в нужные файлы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.