30.03.2022, 19:00
|
|
Прописка
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Смещается адрес переменных?
Добрый день.
Задаю переменные в файле var.h. Инициализация в var.c .
int f1, f2,f3;
они принимают значения либо 1 либо 0 в программе
продолжаю писать программу, через какое то время переменная f1 начинает выдавать какие то псевдослучайные значения во всем int диапазоне.
переименование f1 -› f10 снова нормализует работу.
В чем дело? как сохранить переменную без переименования?
|
|
|
|
30.03.2022, 19:20
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,419
Сказал спасибо: 176
Сказали Спасибо 3,128 раз(а) в 2,017 сообщении(ях)
|
Re: Смещается адрес переменных?
инты для була/логики?
мошт они у тебя не глобальные вот и меняются/затираются?
__________________
кагмаподэ магмаподэ
|
|
|
|
30.03.2022, 19:20
|
|
Прописка
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: Смещается адрес переменных?
да, получается глобальные. Они используются в нескольких файлах.
|
|
|
|
30.03.2022, 19:25
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,419
Сказал спасибо: 176
Сказали Спасибо 3,128 раз(а) в 2,017 сообщении(ях)
|
Re: Смещается адрес переменных?
это надо явно указать
__________________
кагмаподэ магмаподэ
|
|
|
|
30.03.2022, 19:35
|
|
Прописка
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: Смещается адрес переменных?
Получилось, но как то все равно сложно, особенно если переменных больше 200:
файл var.h:
extern int f1;
.....
еще Переменные
.....
файл var.с:
int f1=0;
...........
файл main.h:
#include "var.h"
...
Использование переменных
...
файл test.h:
#include "var.h"
...
Использование переменных
...
Последний раз редактировалось sanstan; 30.03.2022 в 19:48.
|
|
|
|
30.03.2022, 23:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
|
Re: Смещается адрес переменных?
ДААА без бабушки Ванги тут явно не обойтись.
|
|
|
|
31.03.2022, 09:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,514
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
|
Re: Смещается адрес переменных?
Даааа, телепаты ушли...
В заголовочных .h-файлах ничего "использовать" не следует. Вы файлы исходников (.c) и файлы заголовочников (.h) не путаете по применению? Потому как в норме нужно так:
var.c:
Код:
|
int var f0, f1 = 5;
int Foo(int a)
{
return f1 + a + 50;
}
f0 = f1 + 50; |
var.h:
Код:
|
extern int f0, f1;
int Foo(int a); |
main.c:
Код:
|
#include "var.h"
...
f0 = Foo(100); |
И вообще, объявляйте переменные по месту их использования, а не глобально 200 штук сразу для всего проекта. Каждый файл с исходниками должен быть самодостаточен, не иметь лишних ненужных связей, они запутывают проект, усложняют правку и использование фрагментов в других проектах.
__________________
Убейте шизофреника Вовку Стогова!
Последний раз редактировалось NewWriter; 31.03.2022 в 09:43.
|
|
|
Эти 3 пользователя(ей) сказали Спасибо NewWriter за это сообщение:
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:06.
|
|