|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|||||||||||
Std:: или using namespace std;08.10.2017, 18:43. Показов 90140. Ответов 50
Метки нет (Все метки)
Вопрос к профессионалам.
Меня давно интересуют такие вопросы: 1) Почему, многим, вроде бы не безграмотным С++-шникам, в консольных приложениях вместо одной строки : using namespace std; нравится везде перед cout, cin, endl, string и т.п. дописывать std:: ? Это стиль такой пространно-корявый, или есть какое-то логическое объяснение? 2) Почему даже в несложных программах многие спецы предпочитают вместо коротких имён давать переменным пространные имена? 3) Почему многие спецы для несложных программ вместо необходимых заголовочных файлов используют библиотеки "на все случаи жизни"? Утрируя, можно сказать, что простая программа сложения двух чисел:
0
|
|||||||||||
| 08.10.2017, 18:43 | |
|
Ответы с готовыми решениями:
50
Использовать using namespace std; или каждый раз прописывать std:: . ? Что использовать, std::cout или просто using namespace std? Пространство имен - namespace std или std:: |
|
4142 / 2720 / 433
Регистрация: 09.09.2017
Сообщений: 12,054
|
|||
| 01.11.2017, 12:52 | |||
|
Или введение LPCSTR вместо обычного char[], не говоря уж о всяких DWORDLONG, который на самом деле uint64_t Ну и куда же без десятка параметров для простейшей функции вроде открытия файла. В результате вызов одной функции растягивается на несколько строк без всякой надобности и с проблемами чтения.
0
|
|||
|
1359 / 857 / 366
Регистрация: 26.02.2015
Сообщений: 3,831
|
|
| 01.11.2017, 14:20 | |
|
0
|
|
|
77 / 50 / 16
Регистрация: 17.05.2015
Сообщений: 262
|
||||||||||||
| 02.11.2017, 08:52 | ||||||||||||
|
Все таки winAPI - это Си, а не С++. Текст в верхнем регистре - видимо во избежания пересечения имен. Делали в своем стиле, что бы гарантированно минимизировать конфликты с чужим ПО. Да и что делать, если после обновления стандарта, char станет 16 бит? или если я начну компилить свою прогу на компиляторе, у которого разрядность char иная? Для этого и нужен макрос. Он должен проверить компилятор и выставить нужный define а вот LPCSTR или lpcstr - в обоих случаях, я считаю эту конструкцию не читабельную. Хотя как просил человек выше - она соотвествует нужной идеалогии.
Макрос для этого и делают. Что бы не менять код, в случае смены разрядности ОС. Вот яркий пример из моей практики, на случай, если char будет не равен одному байту.
0
|
||||||||||||
|
4142 / 2720 / 433
Регистрация: 09.09.2017
Сообщений: 12,054
|
||||
| 02.11.2017, 13:08 | ||||
|
0
|
||||
|
77 / 50 / 16
Регистрация: 17.05.2015
Сообщений: 262
|
|||||||||
| 02.11.2017, 15:23 | |||||||||
|
char <= short <= int <= long А Visual Studio только С89 поддерживает кстати Хоть и имеет stdint.hВсе эти макросы не по приколу придуманные) В том де Qt в qglobal.h много подобного.
0
|
|||||||||
|
4142 / 2720 / 433
Регистрация: 09.09.2017
Сообщений: 12,054
|
|||
| 02.11.2017, 22:07 | |||
|
0
|
|||
|
77 / 50 / 16
Регистрация: 17.05.2015
Сообщений: 262
|
||||
| 03.11.2017, 15:33 | ||||
|
Ведь где гарантии, что твое ПО через N версий будет совместимо с dll виндой, из за того что за место DWORD ты юзал uint64_t в winAPI? В итоге придется перелопачивать весь код. Конечно это мало вероятно, что размер слова внезапно вырастит или уменьшиться, но все же.
0
|
||||
|
4142 / 2720 / 433
Регистрация: 09.09.2017
Сообщений: 12,054
|
|||||
| 03.11.2017, 16:08 | |||||
|
И, между прочим, это лучше, чем переделывать всю остальную, платформо-независимую, часть только из-за того что DWORD изменился. Добавлено через 15 секунд И, между прочим, это лучше, чем переделывать всю остальную, платформо-независимую, часть только из-за того что DWORD изменился.
0
|
|||||
| 03.11.2017, 16:08 | |
|
Зачем часто писать std::, если можно один раз using namespace std? Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream Std и using namespace std Можно ли как-то убрать или заменить std:: в строке std::getline(cin, str);?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|