首页 > 解决方案 > 多个函数调用?

问题描述

嗨,对编程非常陌生。只是想知道例如我是否有一个名为 void blink(void) 的函数。如果我写一个代码

2 * blink();

是一样的吗

blink();
blink();

?

标签: cfunction

解决方案


我不知道您从哪里获取此语法,但它不会调用该函数两次。它将函数返回值乘以 2。

int blink(void)
{
    return 5;
}

int main(void)
{
    int result;

    result = 2 * blink();
    printf("%d\n", result);
}

https://godbolt.org/z/4nrGj3M6W

如果blinkvoid返回类型,它将简单地不编译。

另一种使用函数指针调用函数的方式:

void blink(void)
{
    printf("BLIMK!!!\n");
}

void callMultiple(void (*func)(void), size_t ntimes)
{
    while(ntimes--) func();
}


int main(void)
{
    size_t times;

    if(scanf("%zu", &times) == 1)
    {
        callMultiple(blink, times);
    }
}

https://godbolt.org/z/jWEd9hnK9


推荐阅读