Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Увы. Она как глобалка, только ее никто кроме этой функции не видит :-)
Отправлено
VasilyS
(80.92.96.25)
05 января 2011, г. 23:16
В ответ на:
Так она-ж внутри функции определяется? Или если статик то всё? Не знал, признаюсь. Правда?
отправлено
Mebius
05 января 2011, г. 23:13
Составить ответ
|
Вернуться на конференцию
Ответы
Ну тогда разницы нет. А в этой функции она нигде больше не используется. И клинит на первом проходе. Выяснял путём моргания светодиодом в глухом цикле.
-
Mebius
(05.01.2011, 23:18:7
87.251.142.7
,
пустое
)
Вынеси вызов этой ф-ции в начало main чтоб не искать, и пробегись дебагером. Все увидишь. Это тот редкий случай когда дебагер лучше светодиода.
-
VasilyS
(05.01.2011, 23:20:59
80.92.96.25
,
пустое
)
Она итак в начале
-
Mebius
(05.01.2011, 23:33:26
87.251.142.7
, 848 байт)
Ну тогда остается поверить нам с Доком на слово, что это так :-)
-
VasilyS
(05.01.2011, 23:36:50
80.92.96.25
,
пустое
)
Чего так-то? Закомментировать эту херню что-ли? Так уже... Там в другом месте затык включается (+)
-
Mebius
(05.01.2011, 23:44:2
87.251.142.7
, 433 байт)
Вполне себе конструкция. Есть объект типа "структура". В структуре той есть поле proc. Оно типа "укозатель на чтото"(из текста не понял). Из таких объектов (гы, чуть объедков не напесал) создан массив armidlist. И вот достается processor = значение по указателю из заданного элемента массива структур (поле в структуре - proc).
-
VasilyS
(06.01.2011, 00:23:18
80.92.96.25
,
пустое
)
типа всю структуру скопирует? Кайло например не копирует.
-
Mebius
(06.01.2011, 00:27:29
87.251.142.7
,
пустое
)
Не, не всю структуру. Обращение-то к одному только полю этой структуры, по имени proc. А поле proc - указатель. При присвоении стоит * значит требуется не само значение указателя, а то, на что он указывает. Вот оно-то и скопируется.
-
VasilyS
(06.01.2011, 00:32:25
80.92.96.25
,
пустое
)
proc - указатель на структуру. Я писал об этом. Кайло структуры не копирует. gcc видимо умеет.
-
Mebius
(06.01.2011, 00:35:9
87.251.142.7
,
пустое
)
Да, тогда прям побитово структура копируется. Это общее правило Си. Только может proc это "указатель на указатель на структуру"? Тогда processor это просто указатель на структуру и получит лишь адрес, а копирования не будет.
-
VasilyS
(06.01.2011, 00:40:0
80.92.96.25
,
пустое
)
нет. processor - структура. proc - указатель на эту структуру.
-
Mebius
(06.01.2011, 00:43:42
87.251.142.7
,
пустое
)
Поверить, что этот статик сохраняется межу вызовами функции, а не умирает на выходе из нее.
-
VasilyS
(05.01.2011, 23:50:3
80.92.96.25
,
пустое
)
поверил. :) Но от этого не легче . Он при входе в функцию обнуляется.
-
Mebius
(05.01.2011, 23:52:53
87.251.142.7
,
пустое
)
Это обман зрения что при входе. Она обнуляется еще до входа в main. Дебагер, дебагер все расскажет.
-
VasilyS
(06.01.2011, 00:06:31
80.92.96.25
,
пустое
)
Василий, Вы подрываете основы... То есть как это что при вхоже не нулится если там явно это написано?
-
Mebius
(06.01.2011, 00:09:25
87.251.142.7
,
пустое
)
Она жэ статик, балда. Нулится один раз си-стартапом. Всё равно как если бы ты написал её за пределами функцыи.
-
провинцыалекс
(06.01.2011, 00:14:41
81.25.57.242
,
пустое
)
он всё равно не возвращается правильно по ретурну...
-
Mebius
(06.01.2011, 00:22:48
87.251.142.7
,
пустое
)
Не. До вызова мэйна, в ствртапе, все неиницилизованные глобалки и статики иницилизуются нулем, и там же в стартапе они получат свои значения, если при обьявлении были проинициализованы ненулевыми значениями. Они для этого и кладутся компилятором в разные сегменты - чтобы стартап прям в цикле их обнулял или из flash-таблицы им значения присваивал. И к моменту main все уже на месте!
-
VasilyS
(06.01.2011, 00:14:29
80.92.96.25
,
пустое
)
Да ради бога пусть в стартапе нулятся. Вы хотите сказать что вот это присвоение не работает при вызове функции только потому что она статик?
-
Mebius
(06.01.2011, 00:18:34
87.251.142.7
, 192 байт)
Вернее работает только в стартапе?
-
Mebius
(06.01.2011, 00:20:58
87.251.142.7
,
пустое
)
Да. В функции - оно может изменять свое значение, но первоначальное получает в стартапе
-
VasilyS
(06.01.2011, 00:25:44
80.92.96.25
,
пустое
)
ок. завтра проверим с учётом. Тока и по ретурну убегает хз куда :(
-
Mebius
(06.01.2011, 00:28:53
87.251.142.7
,
пустое
)
Только дебагером :-) Из main эту статик хрен проверишь - не видна она нигде кроме своей функции и всё тут :-)
-
VasilyS
(06.01.2011, 00:37:12
80.92.96.25
,
пустое
)
ну на содержимое-то проверить можно. 0 - моргнём красным, не ноль - зелёным.
-
Mebius
(06.01.2011, 00:41:52
87.251.142.7
,
пустое
)
Не, просто так затыкать нелзя. Она служит кагбэ счетчиком вызова этой функции: первый вызов или не первый. Как эта... забыл как у девок она называется.
-
VasilyS
(05.01.2011, 23:45:53
80.92.96.25
,
пустое
)
Какой же это счётчик если он при вызове функции принудительно обнуляется?
-
Mebius
(05.01.2011, 23:51:5
87.251.142.7
,
пустое
)
Счетчик, очень похоже на счетчик, говорю тебе... Однобитовый счетчик первого/непервого вызова.
-
VasilyS
(05.01.2011, 23:58:56
80.92.96.25
,
пустое
)
Ну, назови это флагом первого/непервого прохода.
-
VasilyS
(06.01.2011, 00:00:31
80.92.96.25
,
пустое
)
Ту убери =0... Он все равно обнулится, в стартапе, ага... Статик же. Как глобалка ведет себя, собака...
-
VasilyS
(05.01.2011, 23:53:59
80.92.96.25
,
пустое
)
processor -это структура .proc - указатель на эту структуру
-
Mebius
(05.01.2011, 23:45:23
87.251.142.7
,
пустое
)
А лучше сразу подряд два раза вызови. Она должна один раз добежать до присвоения, а во второй - выскочить раньше.
-
VasilyS
(05.01.2011, 23:22:6
80.92.96.25
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сколько миллиампер в одном ампере ?:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru