23 / 23 / 0
Регистрация: 15.05.2014
Сообщений: 131
1

Struct в начале строки при объявлении переменной

25.04.2021, 13:13. Показов 466. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Никак не могу понять, почему в начале строки записано ключевое слово struct. Вот код строчка:
C++
1
struct sockaddr_in addr;
Разве нельзя просто написать sockaddr_in addr? И если так можно, то какая между ними разница?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2021, 13:13
Ответы с готовыми решениями:

Ошибка при объявлении struct
Добрый день, господа и дамы. Возникла небольшая проблема при объявлении struct Вот такая...

При открытии файла каретка расположена в самом начале 1 строки, а не в начале 3
Доброго времени суток! Интересует вопрос, почему при открытии файла каретка расположена в самом...

Инициализация переменной при объявлении
Здравствуйте! Есть 2 примера кода. 1-й: int a; int main() { a = 5; printf("%d",...

Ошибка при объявлении переменной
ADODB.Connection в коде формы, тупо с начала листа кода в General Declarations пишу следующее: ...

5
Модератор
Эксперт С++
13496 / 10751 / 6406
Регистрация: 18.12.2011
Сообщений: 28,688
25.04.2021, 13:31 2
В языке Си слово struct было обязательным, в C++ его разрешено не писать.
0
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 846
25.04.2021, 13:32 3
Вероятно код написан на Си, а не на С++. В Си имя типа, как раз struct sockaddr_in, а в С++ есть возможность опустить слово struct
0
11 / 8 / 3
Регистрация: 08.12.2020
Сообщений: 36
25.04.2021, 13:35 4
Можно не использовать ключевое слово struct, это пришло с Си, где это было обязательным. В C++ использования struct перед объявлением не обязательно, аналогично для class вы можете это использовать, но это не обязательно.

Добавлено через 2 минуты
AlexVRud, тема создана в разделе C++, и он спрашивает
Цитата Сообщение от MAGA Посмотреть сообщение
Разве нельзя просто написать sockaddr_in addr?
а значит он знает что можно писать без struct, но спрашивает в чем разница. Это определенно C++.
0
23 / 23 / 0
Регистрация: 15.05.2014
Сообщений: 131
25.04.2021, 14:06  [ТС] 5
Ребята, огромное спасибо всем! Все теперь понятно.
0
Вездепух
Эксперт CЭксперт С++
11688 / 6367 / 1723
Регистрация: 18.10.2014
Сообщений: 16,050
25.04.2021, 16:51 6
Где это написано? В каком контексте?

1. Если это написано в заголовочном файле, то это может быть сделано для того, чтобы заголовочный файл компилировался и как С, и как С++, ибо в С этот тип называется именно со словом struct

2. Если это сделано в чисто С++ коде, то это может быть необходимо, если имя sockaddr_in скрыто другим таким же именем - например именем переменной или функции. Тогда добавление struct позволит вам обратиться именно к имени типа.

3. Это могло быть сделано вообще машинально, без явной на то причины.
0
25.04.2021, 16:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2021, 16:51
Помогаю со студенческими работами здесь

Ошибка при объявлении переменной
В чем разница?

Ошибка при объявлении переменной
Кто-нибудь может подсказать, в чем здесь проблема ? Есть запрос: DECLARE ...

Что значит * при объявлении переменной?
Пытаюсь разобраться в коде, предоставленном сторонними разработчиками в качестве примера. ...

Присвоение переменной значения при ее объявлении
Доброго времени суток! Возник такой вопрос: обязательно ли нужно присваивать какое-либо значение...

Что происходит в памяти при объявлении переменной
Простите за глупый вопрос, но он меня все же терзает))) Что происходит в памяти при объявлении...

Зачем переменной задавать значение при объявлении?
Всем добрый вечер! Хотелось бы у Вас спросить, дело такое: я пишу векторный редактор, и мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru