Здравствуйте, гость ( Вход | Регистрация )
Алексей1153 | Дата 1.7.2011, 19:59 |
Цитата P.S. блин, аж сама запуталась, правила пару раз для того и придумали его величество typedef ))) |
|
Iron Bug | Дата 1.7.2011, 7:11 |
только нужно писать так: int (*foo)(char) вместо int (*foo)(char bar) без разницы. компилятор всё равно отбрасывает имя переменной в декларации. зато вот у подсказок будет дополнительная информация в виде названия, в котором обычно поясняется назначение переменной. когда смотришь на заголовочник, типы параметров ни о чём не говорят. когда видишь названия переменных - сразу всё становится понятно. |
|
Litkevich Yuriy | Дата 1.7.2011, 6:01 |
Техника, известная как «Чтение по спирали/по часовой стрелке» (”Clockwise/Spiral Rule”) позволяет любому программисту разобрать любое объявление языка Си - http://habrahabr.ru/blogs/cpp/100104/ нашёл там в комментариях интересную штуку, объясняет объявление. только нужно писать так:int (*foo)(char) вместо int (*foo)(char bar) Объявление из первого сообщения: declare listnames as array of const pointer to const pointer to const char |
|
Iron Bug | Дата 30.6.2011, 19:10 |
чёт мне даже в голову не приходило, что и такое может быть
указатель на функцию, возвращающую int, с параметром char массив указателей на функции, возвращающие int, с параметром char
указатель на массив указателей на функции, возвращающие int, с параметром char ну и так далее, вариантов много. всякие там const по необходимости добавляются точно так же, как описано выше. P.S. блин, аж сама запуталась, правила пару раз |
|
Kagami | Дата 30.6.2011, 17:50 |
Техника, известная как «Чтение по спирали/по часовой стрелке» (“Clockwise/Spiral Rule”) позволяет любому программисту разобрать любое объявление языка Си - http://habrahabr.ru/blogs/cpp/100104/ | |
Litkevich Yuriy | Дата 30.6.2011, 13:31 |
и массивы функций чёт мне даже в голову не приходило, что и такое может быть Приведи примеры пожалуйста. Ещё не помешали бы примеры типа как в первом посте, но смесь указателей и ссылок (из реальной жизни). |
|
Litkevich Yuriy | Дата 30.6.2011, 13:27 |
и массивы функций чёт мне даже в голову не приходило, что и такое может быть Приведи примеры пожалуйста. Ещё не помешали бы примеры типа как в первом посте, но смесь указателей и ссылок (из реальной жизни). |
|
Iron Bug | Дата 30.6.2011, 6:30 |
Может список пополнить ещё какими-то родственными объявлениями, кто что помнит? разве что указатели на функции и массивы функций добавить. |
|
Litkevich Yuriy | Дата 30.6.2011, 5:42 |
Так надо бы раз и на всегда с этим покончить. Есть: 1)
2)
3)
4)
"Читаем по слогам" (номера при const - условность): 1) указатель (* listnames1) на константный (const1) char 2) константный указатель (* const2 listnames2) на константный (const1) char 3) массив указателей (* listnames3[]) на константный (const1) char 4) константный массив (const3 listnames4[]) константных указателей (const2 *), на указатель на константный char (const1 char *) Всё верно? Может список пополнить ещё какими-то родственными объявлениями, кто что помнит? |
|
Iron Bug | Дата 29.6.2011, 14:01 |
не с конца, а от самого идентификатора, и смотреть в операции слева и справа в зависимости от их приоритета. я не могу вообразить ни одного примера, чтобы не с конца. "операции" там - функции и массивы(постфиксные) и указатели и ссылки(префиксные). первые имеют приоритет над вторыми. а редкие случаи указателей на функции или массивы разруливаются обычными скобками. в общем, всё равно в итоге выйдет, что с конца |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 4:52 |