C: возможно ли создать массив блоков Clang? - PullRequest
0 голосов
/ 29 апреля 2020

Вам, вероятно, известна особенность компилятора Clang, которая называется Blocks. Есть ли способ создать массив блоков? Моя попытка выглядит так, но она не компилируется:

const void (^write_pckt_props)(const int, struct pckt_idntfy*)[] = {
    ^(const int prop_idx, struct pckt_idntfy *pckt) {
        /* empty */
    },
    ^(const int prop_idx, struct pckt_idntfy *pckt) {
        /* empty */
    }
};

И кто-нибудь сможет позвонить через write_pckt_props[i]().

Есть идеи, если это вообще возможно?

1 Ответ

0 голосов
/ 29 апреля 2020

Да, это возможно. Вот как это делается:

const void (^write_pckt_props[])(const int, struct pckt_idntfy*) = {
    ^(const int prop_idx, struct pckt_idntfy *pckt) {
        /* empty */
    },
    ^(const int prop_idx, struct pckt_idntfy *pckt) {
        /* empty */
    }
};

write_pckt_props[0](0, NULL);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...