Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Блоки (расширение языка Си) - Пример16 февраля 2011Оглавление: 1. Блоки (расширение языка Си) 2. Пример Простым примером, использующим изменяющееся состояние окружающего контекста, является целочисленный итератор: : #include <stdio.h> #include <Block.h> typedef int ; IntBlock MakeCounter { __block int i = start; return Block_copy( ^ { int ret = i; i += increment; return ret; }); } int main { IntBlock mycounter = MakeCounter; printf); printf); printf); /* because it was copied, it must also be released */ Block_release; return 0; } /* Output: First call: 5 Second call: 7 Third call: 9 */ Для компиляции с помощью clang требуются дополнительные опции: clang -fblocks blocks-test.c -lBlocksRuntime Просмотров: 1689
|