nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 28 Jun 2017 06:40



Reply to topic  [ 94 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7
Программная модель Intel 8080/КР580ВМ80А 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15362
Location: New York
Reply with quote
Lavr wrote:
Shaos wrote:
делай структурки (или классы) и динамически создавай экземпляры объекта
у меня вот так было сделано (линк с первой страницы топика):
http://nedopc.cvs.sourceforge.net/viewv ... iew=markup

Shaos, покажи отсюда пример, как это у тебя сделано, а то мне сейчас надо dll-ку написать, где должно быть разделение переменных для разных процессов, а я что-то этот момент подзабыл... :osad:

Code:
class BlahBlah
{
  int internal_var;
public:
  int A,B,C;
  BlahBlah(){A=B=C=0;}
};

и где-то по ходу пьесы:

BlahBlah* blah = new BlahBlah();
...
int R = blah->A + blah->B;
...
delete blah;

или как локальную переменную объект создавать:

BlahBlah blah;
...
int R = blah.A + blah.B;

это C++, а если надо на голом C, то так:
Code:
typedef struct _BlahBlah
{
 int internal_var;
 int A,B,C;
} BlahBlah;

void init_BlahBlah(BlahBlah *this)
{
  this->A = this->B = this->C = 0;
}

и далее где-то в недрах твоей программы:

BlahBlah* blah = (BlahBlah*)malloc(sizeof(BlahBlah));
if(blah!=NULL) init_BlahBlah(blah);
...
int R = blah->A + blah->B;
...
free(blah);

как локальную переменную на C тоже можно:

BlahBlah blah;
init_BlahBlah(&blah);
...
int R = blah.A + blah.B;

_________________
:eugeek: https://twitter.com/Shaos1973


13 Feb 2016 13:36
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Спасибо! Похоже я чисто по старой памяти и по аналогии сделал всё же правильно.
По крайней мере два экземпляра троичного счетчика на одной dll-ке работают нормально... :kruto:

Меня просто aav8 немного спугнул...
aav8 wrote:
Некоторые особенности и мысли по поводу модели x80:
В проекте можно использовать только один проц.

_________________
iLavr


13 Feb 2016 13:47
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Shaos, и если тебе не трудно, расскажи из собственного опыта, как C или С++ проект грамотно разграничивается на отдельные файлы?

Я вот тут расписывал чужой проект, разбитый на отдельные файлы, и вроде идеология какая-то просматривалась.
Но потом встретил пару чужих проектов, где всё это было свалено в одну кучу, и что-то смысл разбиения потерялся... :osad:
И проект, разбитый на файлы, и проект, где один .cpp и один .h компилятся в общем-то нормально.

В чем там основная идея, когда разбивают проект на отдельные файлы? И важна ли какая-то последовательность?

_________________
iLavr


14 Feb 2016 01:01
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15362
Location: New York
Reply with quote
Основная идея чтобы не собирать всё каждый раз когда надо перекомпилировать весь проект - если куча маленьких файлов, то пересобираться будет только то, что изменилось (если через среду разработки собирать или через MAKE) - существенно быстрее будет. Сопутствующая идея - если над проектом работают несколько людей народу, то логичнее, чтобы каждый ковырял свой файл, не наступаю друг-другу на пятки. Ну и в случае стягивания за уши разных вещей - типа сторонние либы и.т.д. оно как бы само напрашивается чтобы было в разных файлах. Для сей как правило тела функций сидят в c-файлах, а объявления функций (а также макросы, объявления типов и структур) в h-файлах (для C++ это cpp и h).

_________________
:eugeek: https://twitter.com/Shaos1973


14 Feb 2016 01:21
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 94 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.