|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||||||||||
Ключевое слово static для переменных в файле18.10.2016, 22:37. Показов 33175. Ответов 24
Метки нет (Все метки)
Много где пишут, если в файле объявить переменную с классом памяти static, то такая переменная будет видна только в том файле где она объявлена. Но на практике так не происходит. Чего я не понимаю?
файл 1
0
|
|||||||||||
| 18.10.2016, 22:37 | |
|
Ответы с готовыми решениями:
24
Считать из первого файла ключевое слово и цвет и выделить слово во втором файле
Что означает ключевое слово const? |
| 19.10.2016, 18:58 | |
|
Неважно, как вы запускаете компилятор, в конечном счете он получает список файлов для компиляции и список директорий, для разрешения ссылок (в которых будет искать исходные файлы).
Разумеется, все необходимые файлы реализации (C/C++) должны быть включены в проект (или указаны в make) и находиться по указанным путям (быть доступными компилятору). Грубо, трансляция проходит три фазы:
1
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 19.10.2016, 19:07 | ||
|
Все эти действия можно произвести и в командной строке, ручками. Но ежели у вас исходных файлов накопилось больше десятка, занятие это муторное. (а у меня, к примеру, в каждом проекте этих файлов по несколько сотен). Можно составить bat-файл, который все команды выполнит. Но он будет делать много лишней (уже сделанной) работы. Так вот, еще на заре создания языка Си (и Юникса) все эти проблемы были поняты, и была создана программа make. Все фреймворки (в том числе Студия) в том или ином виде эту технику используют. Или вызывают уже готовый make (а он был сделан так здорово, что вполне можно использовать make 30-летней давной) или делают свой, самописный, функционально очень похожий. Добавлено через 2 минуты Ну вот, я немного другими словами повторил то, что сказал gazlan. Значит, вполне вероятно, что мы оба недалеки от истины
1
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 19.10.2016, 19:19 [ТС] | |
|
gazlan, Байт,
Большое спасибо! Теперь все на своих местах. Создал 3 файла, file.h, file.c, main.c в последнем подключил file.h и вызвал его функцию. Файл с кодом file.c не подключил Далее скомпилировал с помощью команды cc file.h file.c main.c, полученный экзешник успешно запустился и функция из file.c вызвалась! Добавлено через 1 минуту При таком раскладе никакие экстерны нафиг не нужны Добавлено через 28 секунд Можно просто включать заголовочный файл там где он нужен Ведь описание может повторяться в отличии от реализации
0
|
|
|
Вездепух
13216 / 6848 / 1826
Регистрация: 18.10.2014
Сообщений: 17,369
|
||
| 19.10.2016, 19:24 | ||
.c файлы на вход компилятору.Если описывать процесс в деталях, то каждый .c файл компилируется независимо, с образованием своего собственного объектного файла на выходе. Затем все полученные объектные файлы одновременно передаются на вход линкеру, который из них соберет финальную программу.То есть компилятору/линкеру ничего не надо "знать". "Знать", какие .c файлы входят в состав вашей программы должны только вы сами. И вы сами ответственны за то, чтобы передать все необходимые файлы на вход компилятора и линкера. Забудете передать какой-нибудь файл - программа просто не скомпилируется. Сам компилятор за вас в такой ситуации ничего нигде искать не будет.А разнообразные проекты, makefile и т.п. - это не более чем способы облегчения и автоматизации этого процесса.
1
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 19.10.2016, 19:28 [ТС] | |
|
0
|
|
| 19.10.2016, 19:28 | |
|
Ключевое слово static Зачем использовать ключевое слово static? Ключевое слово static в объявлении функции Зачем и когда нужно писать ключевое слово static Классы.Ключевое слово static - выдает ошибку "неразрешенный внешний символ" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть не большие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|