0
我試圖將一些GCC嵌套函數移植到clang。由於gng嵌套函數在clang中不受支持,我需要使用c-block。Clang C塊:調用後的塊函數定義
但我想在調用它之後有塊定義。 (我需要這個順序,因爲代碼是從宏觀產生的,我不能安排這個順序)
所以在GCC我有這樣的僞代碼:
foo(){
auto void bar (void);
...
bar()
...
void bar(void) {
...some stuff
}
}
你,我可以在C塊鐺功能做到這一點?
此代碼工作正常
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便攜式嵌套函數]可能的複製(http://stackoverflow.com/questions/12214867/portable-nested-functions-in-c)或[重寫與用於鏘嵌套函數GCC清理宏?]( http://stackoverflow.com/questions/24959440/rewrite-gcc-cleanup-macro-with-nested-function-for-clang) – Stargateur