RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > > Ну да: char - числовой тип, логический тип - тоже числовой, да и указатель - тоже число. Специально только что проверил - вот эта программка компилируется без ошибок и предупреждений: > > ------------- > > main() > > { > > int i; > > int *p; > > i = func(*p); > > } > > > > int func(int x) > > { > > return x+1; > > } > > ------------- > > сообщает об отсутствии прототипа функции. > > > > > и вот эта программка компилируется тоже без ошибок и предупреждений: > > ------------- > > main() > > { > > int i; > > int *p; > > i = func(p); > > } > > > > int func(int x) > > { > > return x+1; > > } > > ------------- > > Не компилируется. Ошибка типизации. Указатель вместо int. > > > Разница между ними - в одной-единственной звёздочке. О чём я и говорил несколько писем назад, когда друзей вспоминал. > > Объясни друзьям, что функции нужно описывать. Это несложно. > > > - ни те ошибок при компиляции, ни хотя бы предупреждений. Потому как в полном соответствии с правилами языка. Хотя ни одного кастинга по-прежнему нет. > > Зависит от компилятора. CodeWarrior сообщает о возможной потере точности. OW 1.7 вроде как тоже правили на эту тему - надо будет посмотреть. > > > "А мне пофиг, с какой стороны у тебя козырёк!" Если при пользовании средством можно столкнуться с проблемами, то я предпочту другое средство - с которым проблем нет. Мы ведь о надёжности говорим, а не о том, что можно "в принципе". > > "Главная часть любого оружия - голова его владельца". > > > А ты пробовал? На той же Модуле я спокойно решу практически любую задачу, решаемую на Си. Но хотел бы я посмотреть, как ты будешь на Си манипулировать битовыми флажками, если их больше, чем помещается в long int (ну, хотя бы 256 битов). А между тем, подобные манипуляции в системном программировании встречаются сплошь и рядом. (Когда я смотрю на сишное манипулирование масками - повеситься хочется.) > > Используй сишные битфилды. Очень удобно и код хороший получается. > > > > > > К примеру, как на фортране написать обработчик прерываний? > > > > Не понял - а в чём проблема? Чем оно сложнее, чем аналогичный обработчик на Паскале или любом другом компилируемом языке. > > В стандарте Паскаля не аналога для сишного interrupt. > > > > Как к фортрановской проге прикрутить паскалевскую библиотеку? > > > > А к сишной как? > > Описываешь calling convention для внешней функции и все. > > > > Как на паскале описать функцию с переменным числом параметров? > > > > Этого ещё не хватало! Зачем уродовать неплохой, в принципе, язык? Функции с переменным числом параметров - один из важнейших элементов _ненадёжности_. > > Не иначе именно поэтому в том же самом стандарте Паскаля такие функции есть. Такой вот ненадежный стандарт. > > > Библиотеки от этого насмерть перепугаются и исправятся? > > Генофонд улучшится. > > > Но это всего лишь практика. Языком оно не навязывается. > > Если ты любишь, когда тебе чего-то навязывают - то оно конечно. > > > Догадываешься, сколько существует всяких сишных библиотек, в которых имена функций не имеют никаких префиксов? Начиная прямо со стандартных библиотек самого языка. > > Стандартные библиотеки в префиксах не нуждаются, именно потому что они стандартные. > > > Чему равно у после "y = ++x - ++x;" (скобки расставить по вкусу)? > > Это пример из моих студенческих лет. Сейчас бы я спросил: что вернет mult(++x, --x), если функция mult() возвращает произведение своих аргументов? И чему будет равна переменная x после этого? > > Ну и кто тебе доктор, если ты такой код пишешь? > Ты в сорцы lxlite посмотри. Прямо-таки образцовый пример абсолютно ублюдочного кода на паскале. > >
_, __, _, __,
/_\ |_) /_\ |_)
| | | | | | \
~ ~ ~ ~ ~ ~ ~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.