C 包含函数原型的头文件是否应包含在包含定义的文件中?

C 包含函数原型的头文件是否应包含在包含定义的文件中?,c,header,prototype,function-definition,C,Header,Prototype,Function Definition,我试图找出什么是最佳实践 假设我有一个C函数 双倍无效 我将这个函数原型存储在myfunc.h中 我用myfunc.c编写函数定义 void myfunc(double p){ /* * Do work */ } 我应该在myfunc.c中包含myfunc.h吗 这是没有必要的,但在我看来是更好的做法。是的,您应该这样做,因为它确保声明和定义中的函数签名是相同的。如果它们不匹配,程序将无法编译。在myfunc.c中的任何其他include文件之前包含myfunc.h也是一个好主意。这样您

我试图找出什么是最佳实践

假设我有一个C函数

双倍无效

我将这个函数原型存储在myfunc.h中

我用myfunc.c编写函数定义


void myfunc(double p){
/*
 * Do work
 */
}
我应该在myfunc.c中包含myfunc.h吗


这是没有必要的,但在我看来是更好的做法。

是的,您应该这样做,因为它确保声明和定义中的函数签名是相同的。如果它们不匹配,程序将无法编译。在myfunc.c中的任何其他include文件之前包含myfunc.h也是一个好主意。这样您就知道头文件是自包含的。

是的,您应该这样做,因为它确保声明和定义中的函数签名是相同的。如果它们不匹配,程序将无法编译。在myfunc.c中的任何其他include文件之前包含myfunc.h也是一个好主意。这样您就知道头文件是自包含的。

是。一千次是的!如果您不这样做,它仍然可以工作,但是,如果您在头文件中更改函数定义而不是原型,或者反之亦然,头文件将是错误的,并且它将导致编译器在其他地方强制执行错误的调用。这将彻底挫败使用函数原型和头文件的初衷

另请参见是。一千次是的!如果您不这样做,它仍然可以工作,但是,如果您在头文件中更改函数定义而不是原型,或者反之亦然,头文件将是错误的,并且它将导致编译器在其他地方强制执行错误的调用。这将彻底挫败使用函数原型和头文件的初衷

另见