c语言中的函数优先级

时间:2015-03-04 06:36:05

标签: c

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

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

void display()
{
  printf("user function");
}

上述程序的输出是

main function

但我想在主函数之前执行display()函数。

输出应为:

user function main function

5 个答案:

答案 0 :(得分:4)

你的问题在这里:

void main()
{
    void display(); <--- here
    ....

声明一个功能,但调用。像这样称呼它

display();

请注意您的display函数接受任意参数。你的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");
}

答案 1 :(得分:1)

最后,我在没有调用main中的函数的情况下得到了答案,

#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");
}

输出: 用户功能 主要功能

答案 2 :(得分:0)

主要功能仅在主要功能中执行,您可以在所有其他功能中执行,但您在程序中执行的所有功能都在主要功能中。 你不能从主

中调出其他功能

顺便说一句,主要用途是

int main(int argc, char *argv);

如果你想在1st打电话给你的功能,你可以做到

int main(int argc, char *argv) {
yourFunction(awesomeArguments);
//rest of main
}

答案 3 :(得分:0)

你的意思是&#34;主要功能&#34;在printf语句中。实际的int main函数是第一个执行的函数。如果这是你的意思,切换printf以反转显示。

答案 4 :(得分:0)

您正在声明main函数内部的函数而不是调用它。因此执行顺序不是根据你的期望。只需将函数定义置于主函数之上并将其称为

display();

或将其声明为

void display() ;

以上主要方法,并在没有&#39; void&#39;

的情况下调用它