Вот выдержка из раздела Руководство по программированию блоков, концептуальный обзор.
Вы можете скопировать блок и даже передать его другим потокам для отложенного выполнения (или, внутри своего собственного потока, в цикл выполнения). Компилятор и среда выполнения принимают меры к тому, чтобы все переменные, на которые ссылается блок, сохранялись в течение всего срока службы всех копий блока. Хотя блоки доступны в чистом C и C++, блок также всегда является объектом Objective-C.
Я пытался понять смысл последнего предложения, но не смог. Первая и вторая часть предложения кажутся мне несовместимыми (видимо, я что-то упускаю). Означает ли это, что блоки — это не одно и то же в C/C++ и объективном C? Это связано с тем, как захватываются блочные объекты в задаче C?