Предлагаю за такое и подобное отрывать яйца, а затем прижигать каленым железом.
int *(*f)(char *с)
Кто может что-нить конструктивно сказать, что я не прав?
Предлагаю за такое и подобное отрывать яйца, а затем прижигать каленым железом.
int *(*f)(char *с)
Кто может что-нить конструктивно сказать, что я не прав?
Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.
3 июля 2009 в 10:05
Ребят, вообще, холиварные посты щас буду удалять. Речь идёт, вообе-то, не о пользе или вреде указателей, а о конструкции языка. Если по этому поводу обавить нчего, зачем засорять тему? О_о
3 июля 2009 в 10:04
№27- не понял, о чём ты.
2 июля 2009 в 23:00
>> scheme – это очень простой, но очень выразительный язык, очень удобный для обучения программированию.
Афигенно, такой глубокой философский мысли меня еще не посещало…
2 июля 2009 в 22:00
>> Дык, ну тот же самый Спольски и про Scheme пишет… а там ведь явно не на низком уровне усе…
scheme – это очень простой, но очень выразительный язык, очень удобный для обучения программированию.
>> Если вас затрудняет работа с такой конструкцией, почему бы её просто не переопределить на тип myfun?
а если он читает чужой код, написанный тем, кто такими конструкциями думает?
2 июля 2009 в 20:03
Если вас затрудняет работа с такой конструкцией, почему бы её просто не переопределить на тип myfun? Тогда "излишнее напряжение" с мозга снимите, и сможете эффективно использовать такие конструкции в программе.
1 июля 2009 в 23:02
Дык, ну тот же самый Спольски и про Scheme пишет… а там ведь явно не на низком уровне усе…
>> Сложность же в работе, тем не менее, нужна лишь там, где она оправданна, где увеличение сложности ведет, скажем, к повышению производительности или уменьшению объема памяти.
И продолжить если, где повышение производительности и уменьшение памяти оправдано))
1 июля 2009 в 22:04
Любимые фильмы: //www.avideo-portal.com
Открылся новый, абсолютно бесплатный, портал для любителей видео!
Фильмы в качестве не ниже DVD-Rip!
Приглашаются все желающие.
1 июля 2009 в 21:00
На мой взгляд, Спольски правильно пишет, на джаве обучать весьма опасно. Нужно понимать работу компьютера на более низком уровне, это так.
Сложность же в работе, тем не менее, нужна лишь там, где она оправданна, где увеличение сложности ведет, скажем, к повышению производительности или уменьшению объема памяти.
1 июля 2009 в 20:02
По моему он переоценивает сложность указателей… А по сабжу – конструкция и правда некрасива и нелогична. В том-же C# описание ссылки на функцию гораздо симпатичнее.
1 июля 2009 в 2:03
Спольски замечательно написал о "ненависти к указателям":
//local.joelonsoftware.com/wiki/%D0%9E%D0%BF%D0...
30 июня 2009 в 23:00
#21- молодец на Сшарп выполнял проверку на выход за границы массива с помощью исключений. Помнится был такой трюк по переключению банков памяти SVGA видеоадаптера с помощью перхвата AV. К примеру под студией можно использовать перехват ексепшена для декта уже удаленных объектов. Хак конечно, но красиво…
30 июня 2009 в 21:02
Ну понятно
Просто разработчики – тоже люди
30 июня 2009 в 1:05
гг. будет удивительно, если телевизионный пульт будет монолитным – без использования транзисторов/диодов/СБИС/etc. язык программирования – это все-таки вещь для разработчика, а не для рядового пользователя. с другой стороны, никто не будет (и не собирается, я надеюсь) в наше время проектировать калькулятор на транзисторах с памятью на магнитных сердечниках.
29 июня 2009 в 23:05
Что значит "после" ассемблера? Архитектура компьютера – это, конечно хорошо, и знать это необходимо, но согласитесь, если телевизионные каналы на пульте будут именоваться в двоичном коде, потому что это близкая к архитектуре видеопроцессора телевизора форма, это будет странно.
Я вновь к тому, что нужно помнить, что у каждого средства свое применение. Писать большие приложения целиком на ассемблере явно не следует. Хотя не сомневаюсь, при должном желании и большом профессионализме такое приложение может быть лучше оптимизировано к этой самой архитектуре и т.п.
Я не говорю, что указатели удивительны. Операторы Goto тоже не удивительны, но использовать их следует с осторожностью. Ладно.
29 июня 2009 в 22:05
Ну а я именно так и понял, да, программирование – штука не простая, и этим нужно заниматься и многое знать
Я даже, наверное, не про синтаксис, а про саму логику указателей… В прочем, не важно.
29 июня 2009 в 22:05
указатели – это близкая к архитектуре форма. ничего удивительного в них нет. после ассемблера без них вообще сложно.
29 июня 2009 в 0:04
Александр, перечитай ещё на моё нетактичное высказывание. Там я нетактично указываю на проблемы совсем не в синтаксисе языка О_о
P.S. Ничего личного
P.P.S А ещё где-то здесь завалялась тема , в которой молодец на Сшарп выполнял проверку на выход за границы массива с помощью исключений. Это как, простая, легко читаемая конструкция?
28 июня 2009 в 23:03
где вы нашли сложную конструкцию?
<возвращаемый тип> (*<название указателя>) (<аргументы функции>)
28 июня 2009 в 22:01
Да я, собственно, к тому, что написание безошибочного кода с такими конструкциями требует большего напряжения мозга, чем с более простыми. Избежать ошибок в таком коде сложнее. Скажете, нет? Хм. Да, можно сказать, что это значит, нужна большая опытность, или большая мудрость, как нетактично выразился Константин. Я же хочу сказать, что порой сложности можно избежать, избежать ошибок, если не использовать некоторых конструкций. Другими словами, вопрос в том, не является ли работа с такими конструкциями пустой тратой повышенного внимания в том случае, когда их можно заменить на более простые.
Еще раз повторюсь, быть может, это лишь дело привычки. Но все же, указатели не мной одним считаются дополнительным шансом для лишних ошибок. Считаю, не стоит забывать, что каждый язык создан для своего применения, и не призываю писать ядро ОС на джаве
28 июня 2009 в 17:00
"работа с подобными конструкциями требует неоправданно большего напряжения мозгов" О_о Молодёжь, походу, совсем отупела (
Конструкция стандартная, кто видит здесь какие-то сложности – просто не знаком с синтаксисом Си/С++.
Проще говоря, Евгений, если ты не знаком с синтаксисом какого-то языка, это не повод его охаивать.
28 июня 2009 в 15:01
вы видимо, не поняли.
красота кода разработчика и его способность читать код – разные вещи.
28 июня 2009 в 8:04
Мне лично кажется, что работа с подобными конструкциями требует неоправданно большего напряжения мозгов. Хотя, вероятно, к такому привыкаешь.
Это как бывает говорят, "книга очень хорошая, но написана таким языком, что невозможно, тяжело читать". Так вот, значит это была плохая книга
28 июня 2009 в 2:04
Код должен быть красивым и читаться как книга.
Поехал в армию =(
28 июня 2009 в 1:01
это, конечно, правильно, но вопрос в том, хватит ли воображения
28 июня 2009 в 0:05
>> а вы сможете написать указатель на функцию-преобразователь
>> указателей на функции?
>> то есть принимающую и возвращающую int*(*f)(char*с).
на такие случаи typedef придумали =)
27 июня 2009 в 23:03
Это С, ага… Там так принято, не нравитсо пишите на Python )
27 июня 2009 в 23:02
Ребят, написано нормально и понятно.
Проблемы могут возникнуть только у незнающих язык Си/С++.
Кем Евгений и иже с ним, походу, и являются =)))
27 июня 2009 в 23:02
Было бы время, нашёл бы выражение из K&R, из раздела про разбор указателей. Приводимый там пример ещё может вызывать вопросы. Кому не лень, можете его сюда запостить =)
27 июня 2009 в 23:01
чем не нравится указатель на функцию, принимающую указатель на char и возвращающую указатель на int?
27 июня 2009 в 23:01
Неочевидностью того, зачем это нужно.
27 июня 2009 в 23:01
вот как это читается:
int*
(*f)
(
char*
c
)
зачем нужно? например для использования различных функций в хеш-таблицах.
27 июня 2009 в 23:01
>> чем не нравится указатель на функцию,
>> принимающую указатель на char и
>> возвращающую указатель на int?
+1
Это же не указатель на указатель на ссылку указывающую на указатель на функцию…
27 июня 2009 в 23:01
Может я просто слишком ленив, чтобы так извращаться
27 июня 2009 в 23:01
Это же не указатель на указатель на ссылку указывающую на указатель на функцию…
До этого не далеко((
27 июня 2009 в 23:01
поверьте, далеко.
а вы сможете написать указатель на функцию-преобразователь указателей на функции? то есть принимающую и возвращающую int*(*f)(char*с).
27 июня 2009 в 23:00
Прав. Вот только нас в институте пытались учить распознавать такие конструкции. И это уже тогда всем казалось бредом. При чем вне зависимости от уровня знания языка.