Если переменным одного типа можно присваивать значения другого типа, (зачем вообще типизация нужна тогда?)
Модератор: Модераторы разделов
-
Лис
- Сообщения: 1639
- ОС: Zenwalk
Re: Если переменным одного типа можно присваивать значения другого типа,
Portnov, drBatty, понятно. Спасибо за разъяснения.
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Если переменным одного типа можно присваивать значения другого типа,
не, неправильно вы меня поняли. Я привёл пример того, что даже если нет вообще никаких типов(как в ассемблере MIX), всё равно можно писать переносимые программы, а если стандарт языка позволяет использовать типы, и даже часто помогает находить ошибки, то этому можно только радоваться.
Про "приучает к порядку" - не спорю, это конечно хорошо. Как она может мешать - да вот банальный пример из C:
Код: Выделить всё
int i=2; float j = (float)(1/i);
Не всем сразу очевидно, что j окажется равным 0.
причём тут типы? Это стиль, надо писать что-то вроде:
Код: Выделить всё
int i = 2;
float x = 1.0/((float)i);тогда всем будет ясно, что мы хотим сделать, а в вашем примере это не очень понятно. Как здесь:
Код: Выделить всё
int a[100];
int j;
int b = j[a];Если программист изначально использовал опасные преобразования - да. Кроме того, он просто обязан искать ошибки в первую очередь там где есть такие преобразования, к примеру как в вашем примере.
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Если переменным одного типа можно присваивать значения другого типа,
"float x = 0" вполне может быть просто опечаткой. И найти ее потом - целая проблема.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
phasma
- Сообщения: 405
Re: Если переменным одного типа можно присваивать значения другого типа,
вас почитаешь, задумаешься, действительно ли я быдлокодер )))
NB: Dell XPS 1330 T5250|DDR2 4GB|NV 8400|250 GB
Old NB: Asus A6km AMD Turion MT-32|DDR 2 GB|NV GFGO 7300|60 Gb
OS: Ubuntu 9.10, FreeBSD 8.0
Old NB: Asus A6km AMD Turion MT-32|DDR 2 GB|NV GFGO 7300|60 Gb
OS: Ubuntu 9.10, FreeBSD 8.0
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: Если переменным одного типа можно присваивать значения другого типа,
Не переживай, тупость других не сделает тебя умнее.
В дисгармонии со вселенной.
-
phasma
- Сообщения: 405
Re: Если переменным одного типа можно присваивать значения другого типа,
eduard_pustobaev, сам то понял что сказал ?) любой человек отличается умственными способностями относительно кого-то ... следовательно чем тупее другие, тем умнее я ... иль yбунтовцы так не считают ?)
NB: Dell XPS 1330 T5250|DDR2 4GB|NV 8400|250 GB
Old NB: Asus A6km AMD Turion MT-32|DDR 2 GB|NV GFGO 7300|60 Gb
OS: Ubuntu 9.10, FreeBSD 8.0
Old NB: Asus A6km AMD Turion MT-32|DDR 2 GB|NV GFGO 7300|60 Gb
OS: Ubuntu 9.10, FreeBSD 8.0
-
Лис
- Сообщения: 1639
- ОС: Zenwalk
Re: Если переменным одного типа можно присваивать значения другого типа,
чем тупее другие, тем умнее я ... иль yбунтовцы так не считают ?)
С такими принципами Вы далеко не уйдете. Уровень знаний - понятие абсолютное, а не относительное.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Если переменным одного типа можно присваивать значения другого типа,
да да да. а бульдозер, конечно, удобнее экскаватора. и даже по алфавиту раньше идет.
перлы, достойные башорга, действительно, так и сыплются.
гхм. гхм. afaik, все-таки принято глобально делить языки на декларативные и императивные.Uncle_Theodore писал(а): ↑23.10.2007 17:29Нет, ПРОЛОГ -- декларативный язы, а ЛИСП -- функциональный. Разные парадигмы.
приблизительно, конечно. есть и нюансы.
так что, и пролог и лисп — вполне себе оба декларативные.
есть и более мелкое (опять-таки, приблизительное) деление декларативных языков: функциональные (лисп — один из них) и языки логического программирования (например, пролог).
нда. начинали за здравие, а кончили за упокой. это я про phasma…
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Если переменным одного типа можно присваивать значения другого типа,
в данном случае, это разве ошибка? Я не пойму, ну инициализировал я х нулём, ну и что? Тип int разве нельзя абсолютно безопасно переводить в float(да ещё и такое малое число)? Может вы имели ввиду что-то вроде:
Код: Выделить всё
char *s = 0;такая строка почти везде будет работать правильно, но на эту ошибку почти любой компилятор укажет предупреждением(или ошибкой).
Кстати и что-то вроде float x = 7.3/3; ошибкой не будет, перед выполнением деления констант компилятор обязан всё превисти в один тип(если не указано какой - в самый длинный), а уж потом делить.
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Если переменным одного типа можно присваивать значения другого типа,
да конечно, ваши высказывания вообще в рассылки с анекдотами постить(между "про блондинко" и "про чукчу"). И оправдать это алфавитом. Я ведь ясно писал: мне Си удобней лиспа. Потму-что задачи у меня такие. А надо будет канаву прорыть - использую экскаватор, потому что удобнее для рытья канав.
ЗЫ И взял sash-kan бульдозер, и стал им рыть канавы. И получались канавы большие и смешные
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Если переменным одного типа можно присваивать значения другого типа,
извините, если обидел. как-то из Вашего поста не следовало, что Си удобнее именно для Вас. наверно, где-то между строк затерялось ):
но теперь все понятно. после Вашего уточнения все точки над i расставлены.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог