Форум РадиоКот https://radiokot.ru/forum/ |
|
Atmel Snudio 7.2 https://radiokot.ru/forum/viewtopic.php?f=57&t=189618 |
Страница 1 из 1 |
Автор: | aleksey chilov [ Чт авг 17, 2023 14:42:39 ] |
Заголовок сообщения: | Atmel Snudio 7.2 |
Добрый день! В среде "Atmel Studio 7.2" набераю код. Получилось несколько файлов. В одной паре "* С и .h" например некая библиотека, в другой паре ещё что-то... Так вот понадобилось выводить "Кириллицу" на Китайский " 1602 " и пришлось состряпать функцию которая будет работать с массивом и CGRAM но не суть... Суть в том что эта функция находится в одной паре мне её нужно вызвать из другой пары, но тогда у меня массив в её аргументе куда я его перередаю подсвечивается КРАСНЫМ и прилетает ошибка типа не задекларирован массив функции... Не хочется перетаскивать всё в ту пару откуда её " зову " лишняя заморочка. Вот может кто знает вдруг есть какая небудь директива чтоб все переменные и массивы были видны из любой точки проекта???? Естественно хеддеры вначале уже подключены. |
Автор: | codenamehawk [ Пн авг 21, 2023 12:02:54 ] |
Заголовок сообщения: | Re: Atmel Snudio 7.2 |
Посмотрите на extern https://www.google.com/search?client=fi ... ern+c+zpsr |
Автор: | Martian [ Пн авг 21, 2023 13:39:56 ] |
Заголовок сообщения: | Re: Atmel Snudio 7.2 |
Вообще-то, во всех книжках область видимости переменных описывается практически сразу. Например, во втором издании "Программирование на C" авторов Керниган и Ритчи - на странице 44. Если заниматься программированием без и до чтения этой книги, то имеет смысл попросить администраторов создать раздел на форуме с названием "Вопросы от aleksey chilov" |
Автор: | codenamehawk [ Пн авг 21, 2023 15:22:57 ] |
Заголовок сообщения: | Re: Atmel Snudio 7.2 |
Если переменную будите использовать больше чем в двух местах, то проще создать файл нп. hardware.h и вставить туда ссылки на объявления переменных и функций. Код: #ifndef HARDWARE_H_INCLUDED #define HARDWARE_H_INCLUDED extern uint8_t error; //Dla hranenija nomera oshibki // Initializacija zeleza extern void init_hardware(void); #endif // HARDWARE_H_INCLUDED В файлах просто делаете Код: #include "hardware.h" Для чего нужны #ifndef #define #endif, думаю разберетесь сами. |
Автор: | DetSimen [ Вт авг 22, 2023 01:43:01 ] |
Заголовок сообщения: | Re: Atmel Snudio 7.2 |
21й век на дворе Код: #pragma once
extern uint8_t error; //Dla hranenija nomera oshibki // Initializacija zeleza extern void init_hardware(void); |
Автор: | Martian [ Вт авг 22, 2023 08:27:13 ] |
Заголовок сообщения: | Re: Atmel Snudio 7.2 |
#pragma once не является стандартом даже в 21 веке. Кроме того, использование стандартного метода дает возможность управляемого, селективного подключения |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |