Форум программистов, компьютерный форум CyberForum.ru

Небольшая мелочь по теории - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
29.04.2009, 01:22     Небольшая мелочь по теории #1
"Какой максимальной длины может быть внешнее имя в программе на С++ в Вашей системе?" - с локальными именами понятно-С++ не накладывает ограничений на размер имён,а что за внешнее имя?
Ещё вот недопонимаю вопрос "Нарисуйте граф целых и фундаментальных типов,где от одного типа идёт стрелка к другому,если все значения первого типа могут быть представлены значениями второго в любой реализации,соответствующей стандарту.Нарисуйте такой граф для типов вашей любимой реализации"--Что имел в виду автор?Поясните,пожалуйста,условие задачи,а то я не въезжаю,что от меня хотят ))
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2009, 01:22     Небольшая мелочь по теории
Посмотрите здесь:

C++ Небольшая помощь
небольшая функция на c++ C++
Небольшая праблемка C++
C++ Небольшая проблемка)
орел vs решка подправить мелочь C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
29.04.2009, 01:47     Небольшая мелочь по теории #2
Цитата Сообщение от #pragma Посмотреть сообщение
Ещё вот недопонимаю вопрос "Нарисуйте граф целых и фундаментальных типов,где от одного типа идёт стрелка к другому,если все значения первого типа могут быть представлены значениями второго в любой реализации,соответствующей стандарту.Нарисуйте такой граф для типов вашей любимой реализации"--Что имел в виду автор?Поясните,пожалуйста,условие задачи,а то я не въезжаю,что от меня хотят ))
Что-то вроде этого: char -> short -> int -> long.
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
29.04.2009, 01:52  [ТС]     Небольшая мелочь по теории #3
Аа,так это говорится про гарантии стандарта,что то-то гарантированно больше того-то,но меньше того-то? А что значит Ваша любимая реализация-ОС что-ли?эт я не догнал..
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
08.05.2009, 15:43  [ТС]     Небольшая мелочь по теории #4
Кто-нибудь может объяснить точный смысл условия? А то я отложил пока,но решить надо
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
08.05.2009, 16:22     Небольшая мелочь по теории #5
Ваша любимая реализация - это VC++, Borland C++ Builder или т.п.
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
08.05.2009, 16:46  [ТС]     Небольшая мелочь по теории #6
Цитата Сообщение от CheshireCat Посмотреть сообщение
Ваша любимая реализация - это VC++, Borland C++ Builder или т.п.
И на том спасибо ))

...

Кто знает, говорится ли о гарантиях стандарта С++ или о чём-то ещё?Подразумевается,что значения char хранятся целыми числами,и их гарантированный диапазон (переносимый)в любой реализации от 0 до 127?Или автор имеет ввиду что-то ещё?
В-общем мне нужен точный смысл условия,само решение я сделаю,это просто.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
08.05.2009, 17:12     Небольшая мелочь по теории #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
На самом деле, значения char хранятся именно целыми числами (а как иначе?). char относится именно к целочисленным типам, это гарантирует Стандарт. char хранится в одном байте (Стандарт же гарантирует sizeof(char) == 1), однако, сколько битов будет в этом байте - Стандарт не уточняет (мне, например, доводилось во времена оные работать с машинкой с 18-битовыми байтами). Тем не менее, на подавляющем большинстве реализаций, за исключением совсем уж экзотических типа упомянутой, байт == 8 бит.
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
08.05.2009, 17:33  [ТС]     Небольшая мелочь по теории #8
Цитата Сообщение от CheshireCat Посмотреть сообщение
На самом деле, значения char хранятся именно целыми числами (а как иначе?). char относится именно к целочисленным типам, это гарантирует Стандарт. char хранится в одном байте (Стандарт же гарантирует sizeof(char) == 1), однако, сколько битов будет в этом байте - Стандарт не уточняет (мне, например, доводилось во времена оные работать с машинкой с 18-битовыми байтами). Тем не менее, на подавляющем большинстве реализаций, за исключением совсем уж экзотических типа упомянутой, байт == 8 бит.
Ок,спасибо,теперь вроде ясно,кроме одной мелочи:размер типа bool гарантируется равным или иногда большим ,чем char.Интересно,а как такое может быть,что он больше,ведь это некое перечисление,и значения 0 или 1.Это немного путает.Как bool может занимать 8 бит,или даже больше?
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
08.05.2009, 17:53     Небольшая мелочь по теории #9
(злорадно так ухмыляясь) А вот так вот ) Может, и все тут.
Стандарт не требует, и даже недвусмысленно говорит:
Note: in particular, sizeof(bool) and sizeof(wchar_t) are implementation-defined.
sizeof(bool) is not required to be 1.

Так что, у разработчиков реализаций (конкретных компиляторов) развязаны руки - в целях возможных оптимизаций.
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
08.05.2009, 19:45  [ТС]     Небольшая мелочь по теории #10
То есть оптимизации бывают разного вида,включая увеличение расхода памяти?
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 319
Регистрация: 30.03.2009
Сообщений: 14,124
Записей в блоге: 26
08.05.2009, 21:10     Небольшая мелочь по теории #11
Цитата Сообщение от #pragma Посмотреть сообщение
Кто знает, говорится ли о гарантиях стандарта С++ или о чём-то ещё?Подразумевается,что значения char хранятся целыми числами,и их гарантированный диапазон (переносимый)в любой реализации от 0 до 127?Или автор имеет ввиду что-то ещё?
В-общем мне нужен точный смысл условия,само решение я сделаю,это просто.
В стандарте про размеры типов говорится:
1. sizeof (char) = 1 - сказано выше
2. sizeof (char) <= sizeof (short), sizeof (short) <= sizeof (int), sizeof (int) <= sizeof (long) - упомянуто выше

Добавлено через 49 секунд
Цитата Сообщение от #pragma Посмотреть сообщение
То есть оптимизации бывают разного вида,включая увеличение расхода памяти?
Большинство оптимизаций над циклами выражается в увеличение размеров кода

Добавлено через 1 минуту 17 секунд
Цитата Сообщение от #pragma Посмотреть сообщение
Как bool может занимать 8 бит,или даже больше?
Тип может занимать только целое количество байт. В противном случае на объект этого типа нельзя будет взять адрес. Когда у тебя большое количество данных - используй либо битовые маски либо битовые поля
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
08.05.2009, 21:31     Небольшая мелочь по теории #12
Конечно! Как правило, оптимизация по скорости (счета) ведет к ухудшению по памяти, а оптимизация по памяти - к ухудшению скорости.... Любая оптимизация чего-то - это, как правило, поиск "приемлемого компромисса" очень и очень противоречивых требований.
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
08.05.2009, 21:37  [ТС]     Небольшая мелочь по теории #13
Цитата Сообщение от Evg Посмотреть сообщение
В стандарте про размеры типов говорится:
1. sizeof (char) = 1 - сказано выше
2. sizeof (char) <= sizeof (short), sizeof (short) <= sizeof (int), sizeof (int) <= sizeof (long) - упомянуто выше
Так во я о том же!Но в задании говорится о значениях,а не размере,это и поставило меня в тупик,ведь значения,к примеру,bool,только 0 и 1,а размер 1 и больше байт.

Какой максимальной длины может быть внешнее имя в программе на С++ в Вашей системе?Так никто и не говорит)
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
08.05.2009, 21:52     Небольшая мелочь по теории #14
Цитата Сообщение от #pragma Посмотреть сообщение
Какой максимальной длины может быть внешнее имя в программе на С++ в Вашей системе?
Надо курить доку по твоему конкретному компилятору. Стандарт требует (Annex B/2) - не менее 1024 символов. Роман можно написать, даж в стихах
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 319
Регистрация: 30.03.2009
Сообщений: 14,124
Записей в блоге: 26
08.05.2009, 21:56     Небольшая мелочь по теории #15
Про значения написано в посте #2
Просто я непонимаю, что ты не понимаешь
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
08.05.2009, 23:48  [ТС]     Небольшая мелочь по теории #16
Цитата Сообщение от Evg Посмотреть сообщение
Про значения написано в посте #2
Просто я непонимаю, что ты не понимаешь
Просто если говорить о значениях,то тогда всегда выполняется условие:bool ->char,а в стандарте,касающегося размерностей,этого нет!Это же разные вещи,размерность и значения,а написано это в главе,объясняющей размерности,ну вот и запутался я,что имелось ввиду,и хотя чёрным по белому написано про значения,все почему-то думают о размере.Вот поэтому я и неуверен..
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 319
Регистрация: 30.03.2009
Сообщений: 14,124
Записей в блоге: 26
08.05.2009, 23:58     Небольшая мелочь по теории #17
Под "размерностью" ты видимо подразумеваешь "диапазон значений". Просто этот праметр однозначно определяется размером типа. Т.е. если тип имеет размер 1 байт (поглагаем, что байт у нас 8-битный), то в один байте можно закодировать диапазон [-128;+127] в знаковом виде (либо [0;255] в беззнаковом). Если типа равен 2 байта, то [-32768;32767] или [0;65535] соответсвенно. И так далее

Про "bool->char" не совсем понял. Я на 100% не могу утверждать, но сильно подозреваю, что стандарт не оговаривает размер типа bool

Добавлено через 31 секунду
Всмысде не оговаривает соотношения между bool и дргуими типами
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
09.05.2009, 00:02     Небольшая мелочь по теории #18
Цитата Сообщение от Evg Посмотреть сообщение
Я на 100% не могу утверждать, но сильно подозреваю, что стандарт не оговаривает размер типа bool
Угу, именно так:
Note: in particular, sizeof(bool) and sizeof(wchar_t) are implementation-defined.
sizeof(bool) is not required to be 1.
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
09.05.2009, 00:07  [ТС]     Небольшая мелочь по теории #19
По-моему,дошло. Я почему то думал,что значения типа bool только 0 и 1(зациклило),а это не так,верно?Недаром же число со знаком и больше нуля причислится к true,а меньше нуля или ноль-к false.Всё,наконец-то.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2009, 00:11     Небольшая мелочь по теории
Еще ссылки по теме:

C++ Небольшая задачка
C++ Небольшая сложность

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

Или воспользуйтесь поиском по форуму:
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
09.05.2009, 00:11     Небольшая мелочь по теории #20
Цитата Сообщение от #pragma Посмотреть сообщение
Недаром же число со знаком и больше нуля причислится к true,а меньше нуля или ноль-к false.Всё,наконец-то.
Ээ, не, меньше нуля - то тоже тру, а фалс это только нуль.
Yandex
Объявления
09.05.2009, 00:11     Небольшая мелочь по теории
Ответ Создать тему
Опции темы

Текущее время: 17:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru