【发布时间】:2017-01-02 15:44:56
【问题描述】:
我正在尝试将一些 GCC 嵌套函数移植到 clang。由于 clang 不支持 gcc 嵌套函数,我需要改用 c-block。
但我想在调用它之后拥有块定义。 (我需要这个订单,因为代码是从 MACRO 生成的,我无法安排这个订单)
所以在 gcc 中我有这个伪代码:
foo(){
auto void bar (void);
...
bar()
...
void bar(void) {
...some stuff
}
}
你可以在 C-block clang 函数中做到这一点吗?
这段代码运行良好
int main() {
void (^hello)(void);
hello = ^(void){
printf("Hello, block!\n");
};
hello();
return 0;
}
但是下面的代码
int main() {
void (^hello)(void);
hello();
hello = ^(void){
printf("Hello, block!\n");
};
return 0;
}
因段错误而失败。
【问题讨论】:
标签: c clang nested-function