在 C 和 C++ 编程里,要引用一个文件中的函数,包含头文件和使用extern,通常包含头文件是更好的做法

在 C 和 C++ 编程里,要引用一个文件中的函数,通常包含头文件是更好的做法,下面为你详细分析:
包含头文件
优点

代码清晰规范:在源文件里包含函数声明所在的头文件,能让代码结构更清晰,其他人阅读代码时能很容易明白函数的来源和用途。比如,#include "can_port.h" 这样的语句明确表示该源文件要使用 can_port.h 头文件里声明的函数。
自动更新声明:要是函数的声明有变动,只需修改头文件,所有包含该头文件的源文件都会自动获取到新的声明,无需在每个源文件里手动更新。
避免重复声明:借助头文件的预处理指令(如 #ifndef、#define、#endif 或者 #pragma once),可以防止函数声明被重复包含,避免编译错误。

示例

假如有一个头文件 can_port.h:

c

// can_port.h
#ifndef CAN_PORT_H
#define CAN_PORT_H

extern void CAN_ApplicationIfInit ( void );

#endif

在源文件 main.c 中引用该函数:

c

// main.c
#include “can_port.h”

int main() {
CAN_ApplicationIfInit();
return 0;
}

使用 extern 关键字
优点

临时引用:在某些情况下,若只是临时引用某个函数,且不想引入整个头文件,使用 extern 关键字直接声明函数会更方便。
避免依赖:当不想让源文件与头文件产生强依赖关系时,可使用 extern 关键字。不过这种情况比较少见。

缺点

代码维护困难:要是函数的声明有变化,就需要在每个使用 extern 声明该函数的源文件里手动更新,容易出错。
可读性差:在源文件里大量使用 extern 声明函数,会让代码显得杂乱,降低代码的可读性。

示例

c

// main.c
extern void CAN_ApplicationIfInit ( void );

int main() {
CAN_ApplicationIfInit();
return 0;
}

综上所述,通常建议通过包含头文件来引用其他文件中的函数,这样能提高代码的可维护性和可读性。只有在特殊情况下,才考虑使用 extern 关键字直接声明函数。

你可能感兴趣的:(C/C++,c语言,c++)