在main之前定义一个函数?

在main之前定义一个函数?,第1张

概述C99中是否需要函数声明/原型? 我目前正在一个头文件中定义我的功能,并在主文件中定义了#include-ING.在C99中可以吗? 为什么大多数程序员在main()之前声明/原型化函数,并在main()之后定义它?在main之前定义它们是不是更容易,并避免所有的声明/原型? header.h文件的内容: int foo(int foo){// codereturn 1;} 主文件内容: C99中是否需要函数声明/原型?

我目前正在一个头文件中定义我的功能,并在主文件中定义了#include-ING.在C99中可以吗?

为什么大多数程序员在main()之前声明/原型化函数,并在main()之后定义它?在main之前定义它们是不是更容易,并避免所有的声明/原型?

header.h文件的内容:

int foo(int foo){// codereturn 1;}

主文件内容:

#include <stdio.h>#include "header.h"int main(voID){foo(1);return 0;}
解决方法 如何和在哪里原型和定义一个函数在C:

>您的功能仅在特定的.c文件中使用:
在.c文件中定义它是静态的.该函数只对该文件可见和编译.
>您的功能用于多个.c文件:
选择适当的c文件来托管您的定义(例如,在foo.c文件中的所有与foo相关的功能),并且具有相关的头文件以使所有非静态(思考公共)功能具有原型.该函数只能编译一次,但对包含头文件的任何文件都可见.一切都会在链接的时候放在一起.可能的改进:始终使相关的头文件,第一个包含在其c文件中,这样,您将确保任何文件可以安全地包含它,而不需要其他包含使其工作,参考:Large Scale C++ projects(大多数规则也适用于C).
>你的功能是不可能的(你确定是吗?):
在适当的头文件中定义静态内联函数.如果可能,编译器应该用定义来替换你对函数的任何调用(想像宏一样).

在c之前的另一个功能(你的主要功能)的概念只是一个风格的问题.你要么

static int foo(int foo) { // code return 1; } int main(voID) { foo(1); return 0; }

要么

static int foo(int foo);int main(voID) { foo(1); return 0; } static int foo(int foo){ // code return 1; }

将导致相同的程序.第二种方式是程序员优先,因为您每次声明使用其他功能的新功能时,都不必重新组织或声明新的原型.此外,您可以获得一个列在文件中声明的所有功能的列表.从长远来看,您和您的团队使生活更轻松.

总结

以上是内存溢出为你收集整理的在main之前定义一个函数?全部内容,希望文章能够帮你解决在main之前定义一个函数?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1249967.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存