Как я провожу линии с помощью XNA?

Сложности указателей выходят за рамки того, что мы можем легко научить. Заставить студентов указывать друг на друга и использовать листы бумаги с домашними адресами - оба являются отличными инструментами обучения. Они делают большую работу по внедрению основных понятий. Действительно, изучение основных понятий жизненно важно для успешного использования указателей. Тем не менее, в производственном коде часто встречаются гораздо более сложные сценарии, чем эти простые демонстрации могут инкапсулировать.

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

widget->wazzle.fizzle = fazzle.foozle->wazzle;

он может очень быстро запутаться (представьте себе намного больше строк и, возможно, больше уровней). Добавьте массивы указателей и указатели от узла к узлу (деревья, связанные списки), и это еще хуже. Я видел, как некоторые действительно хорошие разработчики терялись, когда они начали работать над такими системами, даже разработчики, которые действительно хорошо понимали основы.

Сложные структуры указателей также не обязательно указывают на плохое кодирование (хотя они могут). Композиция является жизненно важной частью хорошего объектно-ориентированного программирования, а в языках с необработанными указателями она неизбежно приведет к многоуровневой косвенности. Кроме того, системы часто должны использовать сторонние библиотеки со структурами, которые не соответствуют друг другу по стилю или технике. В подобных ситуациях сложность естественным образом возникает (хотя, конечно, мы должны бороться с ней как можно больше).

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

45
задан mmcdole 6 November 2008 в 20:37
поделиться

1 ответ

Существует также код "круглой строки", который manders опубликовал на CodePlex:


Вот сообщение об этом в блоге:

2
ответ дан 26 November 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: