【问题标题】:Is it possible to call a function from a header file in that same header file? (C99)是否可以从同一个头文件中的头文件调用函数? (C99)
【发布时间】:2014-04-18 19:36:26
【问题描述】:

在我将时间投入到可能不可行的编码方法之前,我想知道。

如果我创建一个带有函数的头文件double fill(char *howtofill),那么我可以在头文件中调用该函数吗?

【问题讨论】:

  • 头文件通常不包含函数定义,而只包含函数声明,因此头文件中通常不会有任何函数调用。相反,函数调用将发生在相应代码文件中的函数定义中,是的,允许函数相互调用。你之前创建过多文件项目吗?

标签: c function file c99 forward-declaration


【解决方案1】:

通常在 C 中,头文件用于声明函数原型,然后将包含在适当的 C 文件中(由编译器)。这些原型使 C 文件代码了解函数,这些函数硬编码在其他 C 文件中,而不是在头文件中。

如果您认为需要将代码放入 .h 文件中,您可能需要重新考虑您的程序架构。

很高兴知道:您的所有 .h 文件内容都将“复制粘贴”到 C 文件中,以代替 #include "file.h" 指令。 在编译器的第一步(称为预处理)之后,您的代码将在一个大文件中结束。

如果这对你没有帮助,你能告诉我们更多关于你的问题吗?

【讨论】:

  • 整个程序计算混合在溶液中的一组化学成分的性质。在我的头文件中,我声明了一个名为 t_member 的结构,其中包含化学物质的名称、化学式和分子量。成员是解决方案结构的子结构,其中包含成员和其他一些变量,如温度。由于水和乙醇始终存在于溶液中,因此我想从一开始就为这些成员填充 t_member。
  • 为什么不使用用 t_member 水和 t_member 乙醇填充结构的函数。您可以在每次创建结构时调用它来预填充它。
  • 这就是我想要做的。我不知道头文件只写原型(我认为函数体也在 .h 中)。现在我知道了,我将填充函数放在单独的 c 函数文件中。
猜你喜欢
  • 2015-05-23
  • 1970-01-01
  • 2019-09-27
  • 1970-01-01
  • 1970-01-01
  • 2011-09-11
  • 2013-03-15
  • 2012-09-12
相关资源
最近更新 更多