программирование для прагматиков
Ну наверное как-то так:typedef char** array_of_pointer_to_char;typedef array_of_pointer_to_char (*function_returning_pointer_to_array_of_pointer_to_char);typedef function_returning_pointer_to_array_of_pointer_to_char* pointer_to_pointer_to_function_returning_pointer_to_array_of_pointer_to_char;int main(int argc, char *argv[]){ pointer_to_pointer_to_function_returning_pointer_to_array_of_pointer_to_char *foo[8]; return 0;}
Все гораздо проще.char *(*(**foo [][8])())[];http://www.unixwiz.net/techtips/reading-cdecl.html
> Все гораздо проще.Действительно. :) Только без инструкции не понятно. :)
> а есть ещё собственно такая программка cdecl, которая как раз и формирует объявление типа, используя такое вот описаниеhttp://cdecl.org/
"Всякое бывало, но так хорошо - в первый раз." (с)Это просто праздник какой-то :)))
интересный этот cdecl.orgспасибо, пригодился!
А что за хрень выдает cdelc.org в своем третьем примере?
А есть еще варианты?
А откуда картинка взята?
АнонимныйА откуда картинка взята?Я ее взяла с http://m0riarty.ya.ru/. Откуда он ее взял я не знаю.
char *(*(**foo [][8])())[];Это точно то, что написано на картинке? смущают последние квадратные скобки
АнонимныйЭто точно то, что написано на картинке? смущают последние квадратные скобкиВсе правильно, последние квадратные скобки - это последний array
т.е. получается одномерный массив чаров, в котором каждый элемент - двумерный массив указателей на функцию? Без последний квадратных скобок получается вывернутый массив указателей на функцию, а с ними что-то я не понимаю, что выходит :(
Ха, в вижуал си++ не поддерживаются функции, возвращающие массив, потому и смущали скобочки вконце =)
Ну наверное как-то так:
ОтветитьУдалитьtypedef char** array_of_pointer_to_char;
typedef array_of_pointer_to_char (*function_returning_pointer_to_array_of_pointer_to_char);
typedef function_returning_pointer_to_array_of_pointer_to_char* pointer_to_pointer_to_function_returning_pointer_to_array_of_pointer_to_char;
int main(int argc, char *argv[])
{
pointer_to_pointer_to_function_returning_pointer_to_array_of_pointer_to_char *foo[8];
return 0;
}
Все гораздо проще.
ОтветитьУдалитьchar *(*(**foo [][8])())[];
http://www.unixwiz.net/techtips/reading-cdecl.html
> Все гораздо проще.
ОтветитьУдалитьДействительно. :) Только без инструкции не понятно. :)
> а есть ещё собственно такая программка cdecl, которая как раз и формирует объявление типа, используя такое вот описание
ОтветитьУдалитьhttp://cdecl.org/
"Всякое бывало, но так хорошо - в первый раз." (с)
ОтветитьУдалитьЭто просто праздник какой-то :)))
интересный этот cdecl.org
ОтветитьУдалитьспасибо, пригодился!
А что за хрень выдает cdelc.org в своем третьем примере?
ОтветитьУдалитьА есть еще варианты?
ОтветитьУдалитьА откуда картинка взята?
ОтветитьУдалитьАнонимный
ОтветитьУдалитьА откуда картинка взята?
Я ее взяла с http://m0riarty.ya.ru/. Откуда он ее взял я не знаю.
char *(*(**foo [][8])())[];
ОтветитьУдалитьЭто точно то, что написано на картинке? смущают последние квадратные скобки
Анонимный
ОтветитьУдалитьЭто точно то, что написано на картинке? смущают последние квадратные скобки
Все правильно, последние квадратные скобки - это последний array
т.е. получается одномерный массив чаров, в котором каждый элемент - двумерный массив указателей на функцию? Без последний квадратных скобок получается вывернутый массив указателей на функцию, а с ними что-то я не понимаю, что выходит :(
ОтветитьУдалитьХа, в вижуал си++ не поддерживаются функции, возвращающие массив, потому и смущали скобочки вконце =)
ОтветитьУдалить