无效影响程序的输出

she*_*ngh 1 c linux gcc

我正在调用一个打印值的函数,但是在void调用之前添加时,该函数没有给出正确的(或任何)输出。

我尝试了各种方法

#include <stdio.h> 

void func1(); 
void func2(); 

void func1() 
{ 
    printf("Inside func1()\n"); 
} 

void func2() 
{ 
    printf("Inside func2()\n"); 
} 

int main() 
{ 
    void func1(); 
    void func2(); 
    printf("Inside main()\n"); 

    return 0; 
} 
Run Code Online (Sandbox Code Playgroud)

输出是:-

#include <stdio.h> 

void func1(); 
void func2(); 

void func1() 
{ 
    printf("Inside func1()\n"); 
} 

void func2() 
{ 
    printf("Inside func2()\n"); 
} 

int main() 
{ 
    void func1(); 
    void func2(); 
    printf("Inside main()\n"); 

    return 0; 
} 
Run Code Online (Sandbox Code Playgroud)

Whenvoid在调用func1and之前被移除func2,输出被改变。

#include <stdio.h> 

void func1(); 
void func2(); 

void func1() 
{ 
    printf("Inside func1()\n"); 
} 

void func2() 
{ 
    printf("Inside func2()\n"); 
} 

int main() 
{ 
    func1(); 
    func2(); 
    printf("Inside main()\n"); 

    return 0; 
} 
Run Code Online (Sandbox Code Playgroud)

输出是:-

Inside main 
Run Code Online (Sandbox Code Playgroud)

谁能解释一下如何void影响所需的输出?

Bat*_*eba 5

声明void func1();main是一个函数声明。这是运行时的空操作。

func1(); 实际上调用了函数。

这就是语言语法的运作方式,仅此而已。仔细想想还是挺聪明的。