| GOTO '*' expr ';'
Run Code Online (Sandbox Code Playgroud)
我还没有看到过这样的陈述,任何人都可以举个例子吗?
这就是所谓的标签作为值,代表了GCC扩展之一.
举个例子,我已经应用了扩展给出一个答案来打印1至1000,而不循环或条件语句的问题:
void printMe ()
{
int i = 1;
startPrintMe:
printf ("%d\n", i);
void *labelPtr = &&startPrintMe + (&&exitPrintMe - &&startPrintMe) * (i++ / 1000);
goto *labelPtr;
exitPrintMe:
}
Run Code Online (Sandbox Code Playgroud)