понедельник, апреля 18, 2011

Inception in C


via Moriarty

14 комментариев:

  1. Ну наверное как-то так:

    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;
    }

    ОтветитьУдалить
  2. Все гораздо проще.

    char *(*(**foo [][8])())[];

    http://www.unixwiz.net/techtips/reading-cdecl.html

    ОтветитьУдалить
  3. > Все гораздо проще.

    Действительно. :) Только без инструкции не понятно. :)

    ОтветитьУдалить
  4. > а есть ещё собственно такая программка cdecl, которая как раз и формирует объявление типа, используя такое вот описание

    http://cdecl.org/

    ОтветитьУдалить
  5. "Всякое бывало, но так хорошо - в первый раз." (с)

    Это просто праздник какой-то :)))

    ОтветитьУдалить
  6. Анонимный6/5/11 08:17

    интересный этот cdecl.org
    спасибо, пригодился!

    ОтветитьУдалить
  7. Анонимный8/5/11 17:55

    А что за хрень выдает cdelc.org в своем третьем примере?

    ОтветитьУдалить
  8. А есть еще варианты?

    ОтветитьУдалить
  9. Анонимный27/8/11 20:00

    А откуда картинка взята?

    ОтветитьУдалить
  10. Анонимный
    А откуда картинка взята?

    Я ее взяла с http://m0riarty.ya.ru/. Откуда он ее взял я не знаю.

    ОтветитьУдалить
  11. Анонимный10/4/12 20:12

    char *(*(**foo [][8])())[];

    Это точно то, что написано на картинке? смущают последние квадратные скобки

    ОтветитьУдалить
  12. Анонимный

    Это точно то, что написано на картинке? смущают последние квадратные скобки

    Все правильно, последние квадратные скобки - это последний array

    ОтветитьУдалить
  13. Анонимный11/4/12 14:35

    т.е. получается одномерный массив чаров, в котором каждый элемент - двумерный массив указателей на функцию? Без последний квадратных скобок получается вывернутый массив указателей на функцию, а с ними что-то я не понимаю, что выходит :(

    ОтветитьУдалить
  14. Анонимный19/4/12 21:06

    Ха, в вижуал си++ не поддерживаются функции, возвращающие массив, потому и смущали скобочки вконце =)

    ОтветитьУдалить