Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Jutar
1 / 1 / 0
Регистрация: 04.12.2012
Сообщений: 49
#1

Зачем нужно явно указывать тип переменной? - C++

19.03.2013, 20:04. Просмотров 1430. Ответов 19
Метки нет (Все метки)

Всем привет!
Объясните зачем нужно явно указывать тип переменной?
Например в С++ это обязательно, а php нет. Просто говорят что не указывать тип явно приводит к не лучшему исходу. Почему? И важно ли это "нововведение" в С++ (и подобных языках) про явное указание (в бейсике не нужно )?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2013, 20:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Зачем нужно явно указывать тип переменной? (C++):

При вынесении определения всегда ли нужно указывать функцию как inline явно?
Бьярни пишет class char_stack { int size; char* top; char* s; ...

Enum и типы данных. Как задать тип значений явно, и какой тип будет при переполнении?
Пытаюсь сделать функцию с передачей нескольких параметров,используя битовые...

Восьмибитный тип переменной (что за тип, но не BYTE и не CHAR?
Вроде давно занимаюсь программированием на С++, но встала проблема... Есть...

Почему в scanf нужно указывать именно адреса переменных?
Почему в функции scanf нужно указывать именно адреса переменных? Почему не...

Требуется ли при удалении объекта посредством delete указывать тип объекта?
например, есть указателиvoid *p1; void *p2; есть VCL-объект TButton, есть...

Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить?
Вот еще один вопрос зачем биты нужны это меньше байтов но int 32 бита но я не...

19
updaite
14 / 14 / 8
Регистрация: 14.01.2013
Сообщений: 529
Записей в блоге: 2
Завершенные тесты: 5
19.03.2013, 20:05 #2
Для экономии памяти и быстроты выполнения программы.
1
Jutar
1 / 1 / 0
Регистрация: 04.12.2012
Сообщений: 49
19.03.2013, 20:10  [ТС] #3
И все? Ни к чему плохому "авто" тип привести не может?
0
updaite
14 / 14 / 8
Регистрация: 14.01.2013
Сообщений: 529
Записей в блоге: 2
Завершенные тесты: 5
19.03.2013, 20:12 #4
Нет. С++ Гибкий язык.
0
Kuzia domovenok
2215 / 1984 / 447
Регистрация: 25.03.2012
Сообщений: 6,973
Записей в блоге: 1
19.03.2013, 20:13 #5
а как компилятору узнать сколько выделять памяти под каждую переменную?
Как вообще без этого программировать?
0
pEntity
41 / 63 / 12
Регистрация: 12.12.2012
Сообщений: 899
19.03.2013, 20:15 #6
Еще например: int быстрей чем unsigned char,unsigned char просто экономит память,но важней скорость.
0
Croessmah
++Ͻ
14161 / 8086 / 1513
Регистрация: 27.09.2012
Сообщений: 19,929
Записей в блоге: 3
Завершенные тесты: 1
19.03.2013, 20:15 #7
Цитата Сообщение от Jutar Посмотреть сообщение
"нововведение" в С++
нововведение - это скорее не указывать тип.

Не по теме:

Цитата Сообщение от Jutar Посмотреть сообщение
Например в С++ это обязательно, а php нет.
пых вообще из веба, нашли с чем сравнить...

0
Jutar
1 / 1 / 0
Регистрация: 04.12.2012
Сообщений: 49
19.03.2013, 20:16  [ТС] #8
Причем здесь это? Я понимаю прекрасно что "авто" тип это по сути тип который определяется другой программой, например библиотекой. Цель данной темы было узнать что будет если не указывать тип переменной в скриптовых языках и т.д!
0
Croessmah
++Ͻ
14161 / 8086 / 1513
Регистрация: 27.09.2012
Сообщений: 19,929
Записей в блоге: 3
Завершенные тесты: 1
19.03.2013, 20:16 #9
Цитата Сообщение от Jutar Посмотреть сообщение
про явное указание (в бейсике не нужно)
Поэтому и жрет он как богатырь
0
Jutar
1 / 1 / 0
Регистрация: 04.12.2012
Сообщений: 49
19.03.2013, 20:17  [ТС] #10
Цитата Сообщение от Croessmah Посмотреть сообщение
нововведение - это скорее не указывать тип.
Я про бейсик
0
Croessmah
++Ͻ
14161 / 8086 / 1513
Регистрация: 27.09.2012
Сообщений: 19,929
Записей в блоге: 3
Завершенные тесты: 1
19.03.2013, 20:18 #11
Цитата Сообщение от Jutar Посмотреть сообщение
узнать что будет если не указывать тип переменной в скриптовых языках и т.д!
Скорее всего просто выделится количество памяти, достаточное для любого типа.

Добавлено через 46 секунд
Цитата Сообщение от Jutar Посмотреть сообщение
Я про бейсик
Вот если на Basic'e не указывать тип, то переменная имеет тип Variant(в VB6 это 16 байт вроде)
1
diagon
Higher
1937 / 1203 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.03.2013, 20:21 #12
Я вообще не понимаю, как можно читать динамические языки. Собственно, вопрос - что именно вам не нравится?
Много букаф? Так давно auto изобрели.
0
updaite
14 / 14 / 8
Регистрация: 14.01.2013
Сообщений: 529
Записей в блоге: 2
Завершенные тесты: 5
19.03.2013, 20:22 #13
Всё элементарно ватсон.
P.S В php есть типы, вот вам будет штрафное задание.
Изучить типы данных.
Подсказка.
пример
int - 4 байта.
В uinx int - 8 байт.
Действуйте)
0
Jutar
1 / 1 / 0
Регистрация: 04.12.2012
Сообщений: 49
19.03.2013, 20:24  [ТС] #14
Цитата Сообщение от updaite Посмотреть сообщение
Всё элементарно ватсон.
P.S В php есть типы)
Я знаю, и что?
Я узнал что хотел: явное указание для ускорения программы и экономии памяти, или одно из этого.

P.S. я программист игр, и сейчас моделирую игровую систему и проектирую ИИ, а такого простого оказывается не знаю!
P.P.S. я начинающий программист и на данном этапе "развития" всего лишь экспериментирую...
0
updaite
14 / 14 / 8
Регистрация: 14.01.2013
Сообщений: 529
Записей в блоге: 2
Завершенные тесты: 5
19.03.2013, 20:36 #15
Знающий человек, не задавал бы такие вопросы.
Это гласит о том, что вы не знаете, как устроен компьютер, и не понимаете как представляется переменная в памяти. А это большой минус.

Добавлено через 8 минут
Цитата Сообщение от Jutar Посмотреть сообщение
P.P.S. я начинающий программист и на данном этапе "развития" всего лишь экспериментирую...
Изучайте информатику) Представления чисел в ячейки памяти, Машину Тьюринга, коды Фано и т.д.
Хуже вам не будит, вопросов меньше будет, да и самому интересно будет.
0
Jutar
1 / 1 / 0
Регистрация: 04.12.2012
Сообщений: 49
19.03.2013, 20:37  [ТС] #16
С одной стороны да, с другой нет. Я знаю как устроен компьютер и хранение в памяти тоже знаю, я лишь зациклился на том, что понял пост одного человека на форуме не верно, подумав, что он хотел сказать что это плохо сказывается на программе. Я понял это в смысле логической ошибки, которая может произойти если явно не указать тип (не в смысле всегда, обязательно, а при определенных обстоятельствах), а то что это просто влияет на память и скорость я не подумал...

P.S. спасибо за совет, почитаю
0
Kastaneda
Jesus loves me
Эксперт С++
4760 / 2963 / 341
Регистрация: 12.12.2009
Сообщений: 7,524
Записей в блоге: 2
Завершенные тесты: 1
19.03.2013, 21:26 #17
Цитата Сообщение от pEntity Посмотреть сообщение
Еще например: int быстрей чем unsigned char,unsigned char просто экономит память,но важней скорость.
Ого, а можно по-подробней?

По сабжу http://ru.wikipedia.org/wiki/Динамическая_типизация
0
diagon
Higher
1937 / 1203 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.03.2013, 21:40 #18
Цитата Сообщение от Kastaneda Посмотреть сообщение
Ого, а можно по-подробней?
Выравнивание же :)
0
Kastaneda
Jesus loves me
Эксперт С++
4760 / 2963 / 341
Регистрация: 12.12.2009
Сообщений: 7,524
Записей в блоге: 2
Завершенные тесты: 1
19.03.2013, 21:53 #19
Цитата Сообщение от diagon Посмотреть сообщение
Выравнивание же
а если переменная лежит в регистре? А если char тоже выровнен? А если int не выровнен?
0
pEntity
41 / 63 / 12
Регистрация: 12.12.2012
Сообщений: 899
20.03.2013, 02:48 #20
Цитата Сообщение от Kastaneda Посмотреть сообщение
Ого, а можно по-подробней?
В книге прочитал основ С++,не помню только в какой.
0
20.03.2013, 02:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2013, 02:48
Привет! Вот еще темы с решениями:

Зачем функции дают тип возврата - имя класса?
Думаю вы по названию не поняли, так вот. Допустим я объявил класс Car. Читаю...

Зачем нужен тип private, если есть protected?
зачем нужен тип private если есть protected??? одного не достаточно? ведь...

Зачем присваивать переменной disc ноль? Объясните пожалуйста
Зачем присваивать disc = 0 (см. 9 строчку кода: double oplata, disc=0; Препод...

Зачем нужно u--?
Как я понимаю это счетчик итераций !! но зачем он ?? #include <iostream>...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru