当函数值为空时,为什么数字仍然被编译?C

当函数值为空时,为什么数字仍然被编译?C,c,C,我正在学习静态,我看到了一个例子: #include <stdio.h> void foo() { int a = 10; static int sa = 10; a += 5; sa += 5; printf("a=%d, sa = %d\n", a, sa); } int main() { int i; for(i=0;i<10;++i) foo(); } #包括 void foo() { INT

我正在学习静态,我看到了一个例子:

#include <stdio.h>

void foo()
{
    int a = 10;
    static int sa = 10;
    a += 5;
    sa += 5;
    printf("a=%d, sa = %d\n", a, sa);
}
int main()
{
    int i;
    for(i=0;i<10;++i)
        foo();
}

#包括
void foo()
{
INTA=10;
静态int-sa=10;
a+=5;
sa+=5;
printf(“a=%d,sa=%d\n”,a,sa);
}
int main()
{
int i;

对于
C语言中的(i=0;i),我们有
void function
,但您对
void function
的定义显然是错误的

像其他函数一样,
void函数
可以编译并包含一些数字等,但它不能返回一个值


它之所以被称为
void
,仅仅是因为它不能返回值。

为什么它会出现错误?你似乎认为
void
不是什么。错误是什么?
foo
只被调用了10次。你编译并运行了它吗?你期望发生什么?为什么?在
void foo()中的
void
是返回类型。它是从函数
返回的值的类型。由于不尝试
返回值,因此不会出现错误。
void
函数不会向调用方返回值;这并不意味着它不能执行任何计算或产生任何副作用。