必须在C中声明函数原型吗?

这个问题已经在这里有了答案:

C89,C90或C99中的所有功能都需要原型吗?                                     6个答案

我是C语言的新手(我以前有Java,C#和一些C ++经验)。 在C语言中,是否需要声明一个函数原型,或者如果没有它,代码是否可以编译? 这样做是好的编程习惯吗? 还是仅取决于编译器? (我正在运行Ubuntu 9.10,并使用Code :: Blocks IDE下的GNU C编译器或gcc)

10个解决方案

65 votes

既不需要在“旧” C(包括C89 / 90)中也不在新C(C99)中为C中的函数声明原型。 但是,C89 / 90和C99在函数声明方面有很大的不同。

在C89 / 90中,根本不需要声明函数。 如果在调用时未声明该函数,则编译器从调用中传递的参数类型中隐式“猜测”(推断)声明,并假定返回类型为printf。

例如

int main() {

int i = foo(5);

/* No declaration for `foo`, no prototype for `foo`.

Will work in C89/90. Assumes `int foo(int)` */

return 0;

}

int foo(int i) {

return i;

}

在C99中,必须在调用点之前声明调用的每个函数。 但是,仍

c语言哪些情况不用原型声明,必须在C中声明函数原型吗?相关推荐

  1. C语言编程>第二十三周 ③ 下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序;然后把第三字符插入

    例题:下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序.插入法的基本算法是:先对字符串中的头两个元素进行排序:然后把第三字符插入到前两个字符中,插入后前三个字 ...

  2. C语言编程>第二十周 ② 下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调、次最大数和b[1]中的数对调。

    例题:下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调.次最大数和b[1]中的数对调. 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构. ...

  3. C语言编程>第二十五周 ① 给定程序中,函数fun的功能是:在形参s所指字符串中的每个非数字字符之后插入一个“*”号。

    例题:给定程序中,函数fun的功能是:在形参s所指字符串中的每个非数字字符之后插入一个"*"号. 例如,形参s所指的字符串为:albc45sdtg56f,则执行结果为:a*1b*c ...

  4. C语言编程>第十八周 ⑧ 给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。

    例题:给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列. 注意:请勿改动主函数main与其他函数中的任何内容,仅在横线上填写所需的若干表达式或语句. 代码如 ...

  5. C语言编程>第二十五周 ② 下列程序中,函数fun的功能是:将大写字母转换为对应小写字母之后的第五个字母,若为小写字母为v~z,使小写字母的值减21,转换后的小写字母作为函数值返回。

    例题:下列程序中,函数fun的功能是:将大写字母转换为对应小写字母之后的第五个字母,若为小写字母为v-z,使小写字母的值减21,转换后的小写字母作为函数值返回. 例如,若形参是字母A,则转换为小写字母 ...

  6. 快速找到 Linux Kernel 中各种函数原型的方法

    如果你是使用VS Code的话,下面这个小技巧适合你 最近一直在研究Linux的kernel代码,有时候遇到需要查看具体struct定义的时候,但是使用VS Code的时候,每次在查询里面输入的时候, ...

  7. php中函数声明的方法,PHP中的函数声明与使用

    函数 1.  函数名是标识符之一,只能有字母数字下划线,开头不能是数字: 函数名的命名,必须符合"小驼峰法则"FUNC(),func(),Func(); 函数名不区分大小写; 函数 ...

  8. java接口中方法声明_java – 使用实现中声明的接口中未定义的方法

    我有一个由接口定义的类 public interface Test { void testMethod(); } Test test = new TestImpl(); public class Te ...

  9. 函数声明放在头文件中,函数的定义放在实现文件中,然后在主函数中调用

    1.文件的组织结构如下图: 2.Menu.h内容如下: #ifndef MENU_H #define MENU_H int add(int a,int b); int minus(int a, int ...

最新文章

  1. 双击进入物料数据的指定视图
  2. 美研究人员公布“盲动”机器人技术细节
  3. 求字符串中最长无重复子序列
  4. 成功解决ValueError: not enough values to unpack (expected 2, got 1)
  5. 非root用户挂载NFS
  6. 个人作业——软件工程实践总结
  7. ITK:在一幅图像中提取感兴趣区域ROI
  8. python画图中grid等于true_Python中的matplotlib画图总结
  9. markdown 语法_markdown特殊语法之上下标
  10. 控件列[Coolite]上传文件
  11. 编译LTIB遇到的问题解决办法
  12. Linux执行sql文件
  13. 压缩包加密破解常见方法总结 CTF中Misc必备
  14. vb入门教程 经验分享
  15. Litestar 4D:道路照明
  16. python模拟登陆qq空间
  17. Jmeter 压力测试 - Http2.0工具支持-【教学篇】
  18. 抑郁症/新药等最新研究成果进展(2021年10月)
  19. 颜值高的游戏键盘—HyperX Alloy Origins 60 霓虹粉游戏机械键盘
  20. img src .php 不显示,HTML中img标签src属性用PHP设置后不显示

热门文章

  1. 蓝桥牌型种数 C语言解法
  2. 表格标签初学者,制作一个个人简历
  3. 探讨下一步的网游(二)未来不是“游戏+SNS”而是“游戏SNS”
  4. 正在同步文件夹收件箱中的服务器更改,Outlook2016 收件箱同步项目数不一致问题...
  5. 卡乐微互动_微信大屏幕现场互动_关键是真免费
  6. QM/MM--GROMACS+CP2K 安装时报错
  7. AD7190之STM32程序
  8. 2019中国智能语音的发展历程、现状及前景分析
  9. 【项目实战】Spring Cloud Gateway入门介绍 - 网关过滤器工厂
  10. Lumerical Python API学习笔记(二)