c语言中的函数优先级 #包括 #包括 void main() { void display(); clrsc(); printf(“主要功能”); getch(); } 无效显示() { printf(“用户功能”); }

c语言中的函数优先级 #包括 #包括 void main() { void display(); clrsc(); printf(“主要功能”); getch(); } 无效显示() { printf(“用户功能”); },c,C,上述程序的输出为 主要功能 但是我希望在主函数之前执行display()函数 输出应为: display(); 用户函数主函数您的问题在于: #include<stdio.h> #include<conio.h> void main() { void display(); clrscr(); printf("main function"); getch(); } void display() { printf("user function");

上述程序的输出为

主要功能

但是我希望在主函数之前执行
display()
函数

输出应为:

display();
用户函数主函数

您的问题在于:

#include<stdio.h>
#include<conio.h>

void main()
{
  void display();
  clrscr();
  printf("main function");
  getch();
}

void display()
{
  printf("user function");
}
请注意,
display
函数接受任意参数。您的
main
签名错误。你的计划应该是:

display();
#包括
#包括
作废显示(作废);
内部主(空)
{
clrsc();//首先清除屏幕
显示();
printf(“主要功能”);
getch();
返回0;
}
作废显示(作废)
{
printf(“用户功能”);
}

只执行Main函数,在Main中可以执行所有其他函数,但在程序中执行的所有操作都在Main中。 不能在主函数外调用其他函数

顺便说一下,主要用途是

#include<stdio.h>
#include<conio.h>

void display(void); 

int main(void)
{
    clrscr(); // clear screen first
    display();
    printf("main function");
    getch();
    return 0;
}

void display(void)
{
    printf("user function");
}
如果你想在第一次调用你的函数,你可以这样做

int main(int argc, char *argv);

最后我没有调用main中的函数就得到了答案

int main(int argc, char *argv) {
yourFunction(awesomeArguments);
//rest of main
}
#包括
#包括
作废显示(作废);
#pragma启动显示0
void main()
{
printf(“\n主函数”);
getch();
}
无效显示()
{
clrsc();
printf(“\n用户函数”);
}
输出: 用户功能
main function

在printf语句中,您可能指的是“main function”。实际的int main函数是第一个执行的函数。如果这是您的意思,请切换printf以反转显示

您是在主函数中声明函数,而不是调用它。因此,执行顺序并不符合您的期望。只需将函数定义放在主函数之上,并按如下方式调用它

#include<stdio.h>
#include<conio.h>
void display(void);
# pragma startup display 0
void main()
{
printf("\nmain function");
getch();
}
void display()
{
clrscr();
printf("\nuser function");
}
或者宣布它为

display();

在main方法上方,不使用“void”调用它。

删除main函数中的void一词并显示用户函数输出,不要调用CLR,除非您正在为裸机嵌入式系统编写引导加载程序等,在main之前执行函数没有任何意义。如果您发现自己需要这些,那么您的程序设计很可能是糟糕的。此外,C没有指定静态存储持续时间变量的初始化位置,因此如果您设法在main之前运行函数,它就不能依赖具有静态存储持续时间的变量。这反过来意味着,此时调用标准库函数很可能会导致程序崩溃和烧坏。此外,我并不预测MS DOS操作系统的光明前景,因此我强烈建议放弃Turbo C,转而使用符合C标准的编译器。
void display() ;