Интернет магазин китайских планшетных компьютеров



Компьютеры - Блоки (расширение языка Си) - Пример

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


<<< Zeroconf
Док (программа) >>>