Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么块在OC和c+中不同+;?_Ios_Objective C_Clang_Block - Fatal编程技术网

Ios 为什么块在OC和c+中不同+;?

Ios 为什么块在OC和c+中不同+;?,ios,objective-c,clang,block,Ios,Objective C,Clang,Block,我用以下代码定义了一个块: void(^blockA)(void) = ^{ NSLog(@"just a block"); }; NSLog(@"%@", blockA); 这是印刷品: DeepCopy[22740:832979] <__NSGlobalBlock__: 0x100002150> 为什么块不同?< /P>因为OC不是C++。我认为SOObjuleC主要是使用堆,C++更可能使用堆栈。CuthOutsCeSkaCurk OC CLANG到C++,

我用以下代码定义了一个块:

void(^blockA)(void) = ^{
        NSLog(@"just a block");
};
NSLog(@"%@", blockA);
这是印刷品:

DeepCopy[22740:832979] <__NSGlobalBlock__: 0x100002150>

为什么块不同?< /P>因为OC不是C++。我认为SOObjuleC主要是使用堆,C++更可能使用堆栈。CuthOutsCeSkaCurk OC CLANG到C++,实现代码是变化的?事情是块似乎是一个堆栈变量。我不是一个全局变量或属性,所以我假设在转换到C++编译器时选择使用堆栈。你是什么意思“当我把它绑定到C++代码”?你是说你用了叮当作响的重写器?因为重写器通常不会生成与编译器相同的代码

struct __main_block_impl_0 {
   struct __block_impl impl;
   struct __main_block_desc_0* Desc;
   __main_block_impl_0(void *fp, struct __main_block_desc_0 *desc, int flags=0) {
      impl.isa = &_NSConcreteStackBlock;
      impl.Flags = flags;
      impl.FuncPtr = fp;
      Desc = desc;
   }
};