ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
1331572 Топик полностью
Tyмблep (17.07.2023 16:11, просмотров: 164) ответил mse homjak на Какие пули? Там всё логично: инклуд, как банальная вставка текста из файла в майн. Чо там можэт пойти не так?
Месье знает толк в развлечениях. 

Если уж ты начал использовать глобальные переменные в хеадере,

то и делай их там все.

Например:

// --------------------------------------------------------------------------

// FILE globalvar.h 2023.07.17

// --------------------------------------------------------------------------

#ifndef __global_VAR_H__

#define __global_VAR_H__


#ifdef THIS_IS_MAIN_MODULE

#define PLACE_var

// vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

// инициализированная глобальная переменная

int XX_MM = 1;

// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

#else

#define PLACE_var extern

// vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

extern int XX_MM;

// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

#endif


// не инициализированная глобальная переменная

PLACE_var int SomeVar;


#endif


Далее модули:


// file: main.c

#define THIS_IS_MAIN_MODULE

#include "globalvar.h"


int main()

{

SomeRoutine();

XX_MM += SomeVar;

return XX_MM;

}


// file mod1.c


#include "globalvar.h"


int SomeRoutine()

{

SomeVar=2;

return SomeVar;

}