Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Блоки (расширение языка Си) - Пример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 Просмотров: 2005
|