среда, 20 апреля 2011 г.

Declarations


Чтение объявлений¹ типов Си.

 
Перевод статьи Reading C type declarations, увидел у Alenacpp.
Даже для новичков программирования на Си не представляется проблемой прочесть простые описания Си наподобие

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

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

char *(*(**foo[][8])())[]; // чтоо ?????

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

Данная технологическая записка расскажет, как это сделать.