为了账号安全,请及时绑定邮箱和手机立即绑定

【编程初入门】 看C Primer Plus 看到刚开头函数定义的时候有个小问题,感觉函数有重复定义

【编程初入门】 看C Primer Plus 看到刚开头函数定义的时候有个小问题,感觉函数有重复定义

C
慕盖茨4494581 2019-02-12 22:15:51
本人自学编程还没多久,遇到问题比较初级,希望各位路过的大神多多指点,不喜勿喷哈。代码如下:/*在一个文件中使用两个函数*/#include <stdio.h>void butler (void);  /* ISO/ANSI C函数原型*/int main (void){    printf("I will summon the butler function.\n");     butler();    printf("Yes. Bring me some tea and writeable CD-ROMS.\n");    return 0; }void butler (void) /*   函数定义的开始   */{    printf("You rang, sir?\n") }我的问题是:void butler (void); /* ISO/ANSI C函数原型*/究竟这一行代码起到什么作用? 以前学过一点JAVA和python 印象中里面没有类似这样的东西
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

C 语言对函数要求 先声明后定义再调用

void butler (void); /* ISO/ANSI C函数原型*/ 这个是声明,告知编译器我需要使用该函数

void butler (void) /*   函数定义的开始   */{    printf("You rang, sir?\n");
}

这个是定义

但是如果调用发生在定义之后,那么可以省略声明这一步。

/*在一个文件中使用两个函数*/#include <stdio.h>void butler (void) /*   函数定义的开始   */{    printf("You rang, sir?\n");
}int main (void){    printf("I will summon the butler function.\n");
    butler();    printf("Yes. Bring me some tea and writeable CD-ROMS.\n");    return 0;
}

但是在多文件中函数互相调用、库函数之类的情况下,函数如果没有声明,编译器会报错。


查看完整回答
反对 回复 2019-02-12
  • 1 回答
  • 0 关注
  • 550 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信