воскресенье, 31 июля 2011 г.

Как правильно читать объявления в Си

Еще одно умилительное правило, которое так полезно на собеседованиях, но скорее всего не пригодится в реальной работе (в чем-то похоже пост про обход дерева наследования в С++) ;-)

Обычно даже начинающие программисты на Си, не испытывают проблем с чтением таких объявлений:
int foo[5]; // foo массив из 5 элементов типа int
char *foo; // foo указатель на char
double foo(); // foo функция возвращающая значение типа double

Но как только объявления становятся немного сложнее, проблематично точно сказать что это. Например:
char *(*(**foo[][8])())[];
Оказывается, что правила чтения произвольно совокупных объявлений легко учатся даже начинающими программистами (хоть и невозможно использовать такую объявленную переменную).
Чтобы не повторяться - вот ссылка на оригинальную статью.

Комментариев нет: