在 header 中没有声明的调用函数

标签 c include prototype header-files definition

假设我有两个头文件和实现文件,A 和 B。

B:

#include "B.h"

void funcFromB(); //prototype
...
void funcFromB()
{
  ...
}

一个:

#include "B.h"

void funcFromB(); //prototype
...
funcFromB(); //will this work correctly?

如果函数未在 B (B.h) 的 header 中定义,从 A 调用 funcFromB() 能否正常工作?

最佳答案

是的,如果 B.o 链接到 A,该函数将正常工作。.h 文件和 .c 文件在本质上彼此没有任何关系。为了清楚起见,他们应该这样做,但没有任何强制他们这样做。根本不需要 .h 文件,但编码人员发现它们对于组织信息和避免重复自己很有用。

关于在 header 中没有声明的调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22981944/

相关文章:

c - zlib compress() 返回 Z_BUF_ERROR 尽管缓冲区分配给 compressBound 的结果(文件太大?)

javascript - 赋值运算符,为什么结果是-3?

javascript - 在 v5 中扩展 d3.selection——这是正确的做法吗?

c - 如何避免在使用此配置的每个函数中传递配置变量

C 带链表的多文件程序,删除节点

php - 在编码的 PHP 包含中覆盖 CSS

PHP获取包含/需要当前文件的文件

c++ - ATL 中的 CImage 类

javascript - 从异步调用访问另一个对象原型(prototype)上的对象

javascript - 如何在 JavaScript 中重写私有(private)方法?