singlepost

Ненависть к указателям. << На главную или назад  

Предлагаю за такое и подобное отрывать яйца, а затем прижигать каленым железом.

int *(*f)(char *с)

Кто может что-нить конструктивно сказать, что я не прав?

36 ответов в теме “Ненависть к указателям.”

  1. 36
    Константин Смотритель ответил:

    Ребят, вообще, холиварные посты щас буду удалять. Речь идёт, вообе-то, не о пользе или вреде указателей, а о конструкции языка. Если по этому поводу обавить нчего, зачем засорять тему? О_о

  2. 35
    Константин Смотритель ответил:

    №27- не понял, о чём ты.

  3. 34
    Тимур Багаутдинов ответил:

    >> scheme – это очень простой, но очень выразительный язык, очень удобный для обучения программированию.

    Афигенно, такой глубокой философский мысли меня еще не посещало…

  4. 33
    Леонид Максимов ответил:

    >> Дык, ну тот же самый Спольски и про Scheme пишет… а там ведь явно не на низком уровне усе…

    scheme – это очень простой, но очень выразительный язык, очень удобный для обучения программированию.

    >> Если вас затрудняет работа с такой конструкцией, почему бы её просто не переопределить на тип myfun?

    а если он читает чужой код, написанный тем, кто такими конструкциями думает?

  5. 32
    Роман Труба ответил:

    Если вас затрудняет работа с такой конструкцией, почему бы её просто не переопределить на тип myfun? Тогда "излишнее напряжение" с мозга снимите, и сможете эффективно использовать такие конструкции в программе.

  6. 31
    Тимур Багаутдинов ответил:

    Дык, ну тот же самый Спольски и про Scheme пишет… а там ведь явно не на низком уровне усе…

    >> Сложность же в работе, тем не менее, нужна лишь там, где она оправданна, где увеличение сложности ведет, скажем, к повышению производительности или уменьшению объема памяти.

    И продолжить если, где повышение производительности и уменьшение памяти оправдано))

  7. 30
    Сергей Яненко ответил:

    Любимые фильмы: //www.avideo-portal.com
    Открылся новый, абсолютно бесплатный, портал для любителей видео!
    Фильмы в качестве не ниже DVD-Rip!
    Приглашаются все желающие. :)

  8. 29
    Александр Левантовский ответил:

    На мой взгляд, Спольски правильно пишет, на джаве обучать весьма опасно. Нужно понимать работу компьютера на более низком уровне, это так.
    Сложность же в работе, тем не менее, нужна лишь там, где она оправданна, где увеличение сложности ведет, скажем, к повышению производительности или уменьшению объема памяти.

  9. 28
    Алексей Злобин ответил:

    По моему он переоценивает сложность указателей… А по сабжу – конструкция и правда некрасива и нелогична. В том-же C# описание ссылки на функцию гораздо симпатичнее.

  10. 27
    Сергей Старовой ответил:

    Спольски замечательно написал о "ненависти к указателям":
    //local.joelonsoftware.com/wiki/%D0%9E%D0%BF%D0...

  11. 26
    Дмитрий Щёголев ответил:

    #21- молодец на Сшарп выполнял проверку на выход за границы массива с помощью исключений. Помнится был такой трюк по переключению банков памяти SVGA видеоадаптера с помощью перхвата AV. К примеру под студией можно использовать перехват ексепшена для декта уже удаленных объектов. Хак конечно, но красиво…

  12. 25
    Александр Левантовский ответил:

    Ну понятно :)
    Просто разработчики – тоже люди :)

  13. 24
    Леонид Максимов ответил:

    гг. будет удивительно, если телевизионный пульт будет монолитным – без использования транзисторов/диодов/СБИС/etc. язык программирования – это все-таки вещь для разработчика, а не для рядового пользователя. с другой стороны, никто не будет (и не собирается, я надеюсь) в наше время проектировать калькулятор на транзисторах с памятью на магнитных сердечниках.

  14. 23
    Александр Левантовский ответил:

    Что значит "после" ассемблера? Архитектура компьютера – это, конечно хорошо, и знать это необходимо, но согласитесь, если телевизионные каналы на пульте будут именоваться в двоичном коде, потому что это близкая к архитектуре видеопроцессора телевизора форма, это будет странно.
    Я вновь к тому, что нужно помнить, что у каждого средства свое применение. Писать большие приложения целиком на ассемблере явно не следует. Хотя не сомневаюсь, при должном желании и большом профессионализме такое приложение может быть лучше оптимизировано к этой самой архитектуре и т.п.
    Я не говорю, что указатели удивительны. Операторы Goto тоже не удивительны, но использовать их следует с осторожностью. Ладно.

  15. 22
    Александр Левантовский ответил:

    Ну а я именно так и понял, да, программирование – штука не простая, и этим нужно заниматься и многое знать :)
    Я даже, наверное, не про синтаксис, а про саму логику указателей… В прочем, не важно.

  16. 21
    Леонид Максимов ответил:

    указатели – это близкая к архитектуре форма. ничего удивительного в них нет. после ассемблера без них вообще сложно.

  17. 20
    Константин Смотритель ответил:

    Александр, перечитай ещё на моё нетактичное высказывание. Там я нетактично указываю на проблемы совсем не в синтаксисе языка О_о

    P.S. Ничего личного

    P.P.S А ещё где-то здесь завалялась тема , в которой молодец на Сшарп выполнял проверку на выход за границы массива с помощью исключений. Это как, простая, легко читаемая конструкция?

  18. 19
    Леонид Максимов ответил:

    где вы нашли сложную конструкцию?

    <возвращаемый тип> (*<название указателя>) (<аргументы функции>)

  19. 18
    Александр Левантовский ответил:

    Да я, собственно, к тому, что написание безошибочного кода с такими конструкциями требует большего напряжения мозга, чем с более простыми. Избежать ошибок в таком коде сложнее. Скажете, нет? Хм. Да, можно сказать, что это значит, нужна большая опытность, или большая мудрость, как нетактично выразился Константин. Я же хочу сказать, что порой сложности можно избежать, избежать ошибок, если не использовать некоторых конструкций. Другими словами, вопрос в том, не является ли работа с такими конструкциями пустой тратой повышенного внимания в том случае, когда их можно заменить на более простые.

    Еще раз повторюсь, быть может, это лишь дело привычки. Но все же, указатели не мной одним считаются дополнительным шансом для лишних ошибок. Считаю, не стоит забывать, что каждый язык создан для своего применения, и не призываю писать ядро ОС на джаве ;)

  20. 17
    Константин Смотритель ответил:

    "работа с подобными конструкциями требует неоправданно большего напряжения мозгов" О_о Молодёжь, походу, совсем отупела (

    Конструкция стандартная, кто видит здесь какие-то сложности – просто не знаком с синтаксисом Си/С++.

    Проще говоря, Евгений, если ты не знаком с синтаксисом какого-то языка, это не повод его охаивать.

  21. 16
    Леонид Максимов ответил:

    вы видимо, не поняли.
    красота кода разработчика и его способность читать код – разные вещи.

  22. 15
    Александр Левантовский ответил:

    Мне лично кажется, что работа с подобными конструкциями требует неоправданно большего напряжения мозгов. Хотя, вероятно, к такому привыкаешь.
    Это как бывает говорят, "книга очень хорошая, но написана таким языком, что невозможно, тяжело читать". Так вот, значит это была плохая книга :)

  23. 14
    Евгений Гаврин ответил:

    Код должен быть красивым и читаться как книга.

    Поехал в армию =(

  24. 13
    Леонид Максимов ответил:

    это, конечно, правильно, но вопрос в том, хватит ли воображения :)

  25. 12
    Юрий Лисичкин ответил:

    >> а вы сможете написать указатель на функцию-преобразователь
    >> указателей на функции?
    >> то есть принимающую и возвращающую int*(*f)(char*с).
    на такие случаи typedef придумали =)

  26. 11
    Алексей Злобин ответил:

    Это С, ага… Там так принято, не нравитсо пишите на Python )

  27. 10
    Константин Смотритель ответил:

    Ребят, написано нормально и понятно.
    Проблемы могут возникнуть только у незнающих язык Си/С++.
    Кем Евгений и иже с ним, походу, и являются =)))

  28. 9
    Константин Смотритель ответил:

    Было бы время, нашёл бы выражение из K&R, из раздела про разбор указателей. Приводимый там пример ещё может вызывать вопросы. Кому не лень, можете его сюда запостить =)

  29. 8
    Леонид Максимов ответил:

    чем не нравится указатель на функцию, принимающую указатель на char и возвращающую указатель на int?

  30. 7
    Максим Золотарёв ответил:

    Неочевидностью того, зачем это нужно.

  31. 6
    Леонид Максимов ответил:

    вот как это читается:
    int*
    (*f)
    (
    char*
    c
    )

    зачем нужно? например для использования различных функций в хеш-таблицах.

  32. 5
    Юрий Лисичкин ответил:

    >> чем не нравится указатель на функцию,
    >> принимающую указатель на char и
    >> возвращающую указатель на int?
    +1
    Это же не указатель на указатель на ссылку указывающую на указатель на функцию…

  33. 4
    Максим Золотарёв ответил:

    :-) Может я просто слишком ленив, чтобы так извращаться

  34. 3
    Евгений Гаврин ответил:

    Это же не указатель на указатель на ссылку указывающую на указатель на функцию…

    До этого не далеко((

  35. 2
    Леонид Максимов ответил:

    поверьте, далеко.

    а вы сможете написать указатель на функцию-преобразователь указателей на функции? то есть принимающую и возвращающую int*(*f)(char*с).

  36. 1
    Максим Золотарёв ответил:

    Прав. Вот только нас в институте пытались учить распознавать такие конструкции. И это уже тогда всем казалось бредом. При чем вне зависимости от уровня знания языка.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.