|
2 / 2 / 0
Регистрация: 05.02.2021
Сообщений: 162
|
||||||
Что является объявлением структуры, а что является определением?07.08.2021, 08:50. Показов 2964. Ответов 20
Метки нет (Все метки)
Доброго времени суток
Или мы определяем структуру объявляя переменную типа Date
0
|
||||||
| 07.08.2021, 08:50 | |
|
Ответы с готовыми решениями:
20
Определить (что является критической секцией, является потоком, является процессом и т.д.
|
|
фрилансер
6454 / 5655 / 1129
Регистрация: 11.10.2019
Сообщений: 15,054
|
|||||||||||||||||
| 07.08.2021, 10:04 | |||||||||||||||||
|
solvo23,
объявление структуры одновременно с определением структуры:
1
|
|||||||||||||||||
|
1063 / 984 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
|
|
| 07.08.2021, 10:25 | |
|
0
|
|
|
2 / 2 / 0
Регистрация: 05.02.2021
Сообщений: 162
|
|
| 07.08.2021, 11:30 [ТС] | |
|
Это всего лишь пример структуры что в голову пришло то и написал
0
|
|
|
1063 / 984 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
|
|
| 07.08.2021, 11:44 | |
|
глупость в голову пришла и вообще такие вещи гуглятся довольно просто
0
|
|
|
2 / 2 / 0
Регистрация: 05.02.2021
Сообщений: 162
|
|||||||
| 07.08.2021, 20:53 [ТС] | |||||||
|
и например получил такой результат 1. Объявление предоставляет основные свойства символа: его тип и его название. что подтверждает ответ Алексей1153 2. "Объявление структуры" именует тип и задает последовательность переменных значений ("элементы" или "поля" структуры), которые могут иметь разные типы. Необязательный идентификатор — тег — предоставляет имя типа структуры и может использоваться в последующих ссылках на тип структуры. что противоречит ему же Я всего лишь хочу четко понимать где объявление, а где определение поэтому и задаю глупые вопросы В вопросе главное было не
0
|
|||||||
|
фрилансер
6454 / 5655 / 1129
Регистрация: 11.10.2019
Сообщений: 15,054
|
|||
| 07.08.2021, 21:02 | |||
|
противоречия нет: предварительно объявить, а затем определить, можно только указав одно и то же имя
1
|
|||
|
1063 / 984 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
|
|
| 09.08.2021, 01:33 | |
|
Исходя из неоднозначности системы образования, одно и то же в узких околонаучных кругах может называться по разному. Определение и объявление может быть эквивалентным, а может и не быть, как сказано выше.
0
|
|
| 09.08.2021, 11:51 | |
|
Не по теме: solvo23, очень интересный вопрос. :D Нашли что спросить. :D Тоже очень старался понять что такое обьявление, и определение. Например - переменная, это один из обьектов текста программы. Для человека свойственно мыслить обьектами, которые взаимодействуют. Поэтому создатели описания стандарта языка сразу и увидели - вот, переменные это все обьекты. Все очевидно, текст программы наполнен обьектами (переменными). Далее, обьект должен появлятся в тексте программы. Процесс добавления в программу обьекта можно назвать обьявлением. Есть старое слово которое если не ошибаюсь пишется 'явь', означает то что видно, то есть - действительность (современное слово). Если обьекта не существовало а он появился - значит произошел процесс обьявления. Тот кто создал процесс появления обьекта выполнил операцию обьявления. Переменной не было и затем она появилась - переменная обьявлена. Одна из составляющей обьекта переменной (переменная это сложный многосоставной обьект, например - как любой обьект в природе) это ее размер в памяти. Для языка Си, процесс задания типа переменной написанием char, int, float, double и добавления по надобности short, long - можно назвать процессом определения размера памяти под переменную. Здесь все от слова 'предел', то есть - граница для задаваемого блока памяти. Процесс задания границы для какого то значения - ограничение, определение. Запись начального значения в память переменной можно назвать процессом инициализации. Англ. initial, если не ошибаюсь, означает слово 'начальный', 'заглавный'. Вот и процесс задания начального значения можно назвать - инициализация. Почти всегда процесс обьявления переменной содержит процесс определения. Если не ошибаюсь, в Си можно обьявить переменную не определяя ее, с помощью void. Можно переменную сразу обьявить, определить и инициализировать, если воспользоватся оператором '='. Для структур в Си наверное ситуация в какой то мере аналогичная. Вроде структуры тоже можно назвать обьектами? Не по теме: Короче составляли мировые стандарты люди здравые.
0
|
|
|
фрилансер
6454 / 5655 / 1129
Регистрация: 11.10.2019
Сообщений: 15,054
|
|||
| 09.08.2021, 11:59 | |||
|
экземпляр структуры - это объект
0
|
|||
| 09.08.2021, 14:33 | |
|
Не по теме: Надо сказать что в этой теме слабо разбираюсь, и просьба не матерится если что не так сказал. :D solvo23, не рекомендую вам так точно изучать язык программирования. На такое качество понимания надо затратить много силы и времени. Возможно лучше изучить тему языка в общем, и на много быстрее получится способность на нем программировать? Алексей1153, кажется понял вас. Наверное потому что это общепринято в разговоре программистов, так проще. Никто не будет так заморачиваться в разговоре. Может быть вы правы, не знаю. Алексей1153, а какую тогда функцию выполнит, например, int? Да еще и если добавить long? Эти команды установят пределы для памяти переменной, выполнят определение.Все в месте может можно назвать обьявлением переменной? В процессе обьявления есть под-процесс определения.
0
|
|
|
фрилансер
6454 / 5655 / 1129
Регистрация: 11.10.2019
Сообщений: 15,054
|
|
| 09.08.2021, 14:38 | |
|
0
|
|
|
Неэпический
|
||||||
| 09.08.2021, 14:41 | ||||||
|
Вот так (если в новых версиях ничего не поменялось):
0
|
||||||
| 09.08.2021, 21:35 | |
|
Алексей1153, можно подумать что говорил о функции в языке Си связанные из int?
Нет, всмысле эта команда (int, long int) которая записывается перед именем переменной, она задает размер памяти для переменной.Поэтому в обьявлении переменной всегда будет определение. Потому что в записи обьявления переменной всегда есть char, int, float, double. Если можно обьявить переменную без задания ее типа - тогда это обьявление без определения. Но ведь это не возможно? ![]() Croessmah, если перед именем переменной записать static, тогда память под переменную не выделяется? К стати, если трудно понять что такое обьявление и определение, можно разобрать слова declaration и definition. Везде есть приставка 'de', и слова заканчиваются приставкой 'on'. Не по теме: Когда переводят текст книги на другой язык, в оригинале слово можно перевести дословно, а можно поменять. Часто человеку проще понять оригинал книги чем ее перевод.
0
|
|
|
фрилансер
6454 / 5655 / 1129
Регистрация: 11.10.2019
Сообщений: 15,054
|
||||
| 09.08.2021, 21:48 | ||||
|
0
|
||||
|
Гвоздь Задиров
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
|
|||||
| 09.08.2021, 22:00 | |||||
![]() int и struct A{}; - оба два типы. Первый "встроенный", его объявление доступно везде, а определения запрятано глубоко и, соотв-но, применительно к таким типам "объявление/определение типа" встречается редко. Для второго "объявление/определение типа" имеет смысл куда чаще, т.к. это пользовательский тип и его объявляют/определяют повсеместно. Языковая конструкция вроде "объявим переменную типа Х" ничего общего с "объявим тип Х" не имеет, оно означает "создадим объект типа Х". Стоит различать.
0
|
|||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 10.08.2021, 02:48 | |
|
в языке с++ возможны ситуации, когда сущность определена, но не объявлена.
0
|
|
|
Вездепух
12936 / 6803 / 1821
Регистрация: 18.10.2014
Сообщений: 17,214
|
||
| 10.08.2021, 03:39 | ||
|
В языке С, например, понятие "определения" применимо только к переменным, функциям, typedef-псевдонимам и макросам. В С нет такого понятия как "определение структуры". Структуры в С только объявляются. И вариант struct S; и вариант struct S { ... }; являются объявлениями. Разница лишь в том, что первая объявляет неполный тип, вторая - полный.В С++ ситуация совсем другая и для класс-типов вводится деление на объявление и определение. Ваше гугленье нагуглило ответы для С или для С++?
0
|
||
|
Неэпический
|
|||||||
| 10.08.2021, 11:32 | |||||||
|
И да, определения не будет.
0
|
|||||||
| 10.08.2021, 11:32 | |
|
Помогаю со студенческими работами здесь
20
Показать, что пространство всех многочленов P[0,1] является нормированным, но не является банаховым Доказать, что данная мера является непрерывной, но не является сигма- аддитивной
Доказать, что предикат является (или не является) (примитивно) рекурсивным Доказать, что первая матрица является или не является элементом (решением) трёх заданных матриц Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|