Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Ответ
Опции темы
Непрочитано 30.03.2022, 19:00   #1
sanstan
Прописка
 
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
sanstan на пути к лучшему
По умолчанию Смещается адрес переменных?

Добрый день.
Задаю переменные в файле var.h. Инициализация в var.c .
int f1, f2,f3;
они принимают значения либо 1 либо 0 в программе
продолжаю писать программу, через какое то время переменная f1 начинает выдавать какие то псевдослучайные значения во всем int диапазоне.

переименование f1 -› f10 снова нормализует работу.

В чем дело? как сохранить переменную без переименования?
Реклама:
sanstan вне форума   Ответить с цитированием
Непрочитано 30.03.2022, 19:20   #2
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,500
Сказал спасибо: 179
Сказали Спасибо 3,142 раз(а) в 2,029 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: Смещается адрес переменных?

инты для була/логики?

мошт они у тебя не глобальные вот и меняются/затираются?
__________________
кагмаподэ магмаподэ
индюк вне форума   Ответить с цитированием
Непрочитано 30.03.2022, 19:20   #3
sanstan
Прописка
 
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
sanstan на пути к лучшему
По умолчанию Re: Смещается адрес переменных?

да, получается глобальные. Они используются в нескольких файлах.
sanstan вне форума   Ответить с цитированием
Непрочитано 30.03.2022, 19:25   #4
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,500
Сказал спасибо: 179
Сказали Спасибо 3,142 раз(а) в 2,029 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: Смещается адрес переменных?

это надо явно указать
__________________
кагмаподэ магмаподэ
индюк вне форума   Ответить с цитированием
Непрочитано 30.03.2022, 19:35   #5
sanstan
Прописка
 
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
sanstan на пути к лучшему
По умолчанию 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.
sanstan вне форума   Ответить с цитированием
Непрочитано 30.03.2022, 23:37   #6
vavan1983
Почётный гражданин KAZUS.RU
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: Смещается адрес переменных?

ДААА без бабушки Ванги тут явно не обойтись.
vavan1983 вне форума   Ответить с цитированием
Непрочитано 31.03.2022, 09:34   #7
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию 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.
NewWriter вне форума   Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо NewWriter за это сообщение:
mike-y-k (31.03.2022), Yuri222 (31.03.2022)
Ответ

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ускорить компьютер 7Fantomas7 Ремонт оргтехники 111 08.08.2018 05:27
CVAVR порча переменных Aselicon AVR 5 06.04.2017 22:18
После определенного количества используемых переменных - на дисплее "крякозяблики" -vitalik- PIC 31 16.12.2015 04:43
Безопасный адрес электронной почты Falconist Обсуждение сайта и форума 33 15.11.2011 09:24
Как получить адрес элемента структуры? k0stya_ Микроконтроллеры, АЦП, память и т.д 9 14.11.2011 23:07


Часовой пояс GMT +4, время: 20:41.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot