小编zmc*_*ord的帖子

在 C 函数的参数中声明变量

我有一个奇怪的愿望;我不知道是否有任何编译器或语言扩展允许这样做。

我希望能够在函数调用中声明变量,如下所示:

int test(int *out_p) {
    *out_p = 5;
    return 1;
}

int main()
{
    if (int ret = test(int &var)) { // int var declared inside function invocation
        fprintf(stderr, "var = %d\n", var); // var in scope here
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

因为 var 的作用域遵循 ret 的作用域。另一个例子(来自我现在正在进行的一个项目),我有

cmd_s = readline();
int x, y, dX, dY, symA, symB;
if (sscanf(cmd_s, "placeDomino:%d %d atX:%d y:%d dX:%d dY:%d",
                           &symA, &symB, &x,  &y,   &dX,  &dY) == 6) {
    do_complicated_stuff(symA, symB, x, y, dX, …
Run Code Online (Sandbox Code Playgroud)

c variables declaration function invocation

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×1

declaration ×1

function ×1

invocation ×1

variables ×1