gpt4 book ai didi

c - 在自定义函数中再次包含相同的头文件,哪些已经包含在主程序中?

转载 作者:太空宇宙 更新时间:2023-11-04 04:10:14 25 4
gpt4 key购买 nike

如果我已经在主程序(调用者)中包含相同的头文件,我应该在该特定函数的头文件或函数定义文件中包含它们吗?

例如:

/* Text of main programm */
#include <stdlib.h> /* Including the headers first */
#include <stdio.h>
#include <function.h>

int function(void);

int main (void)
{
/* stdio.h is needed in main with f.e.
printf("Let us using function!); */
function();
return(0);
}
_____________________________________________________________________

/* Headerfile for function ("function.h") */
/*
#include <stdlib.h> Should I include the headers again here?
#include <stdio.h>
*/

int function (void);
_____________________________________________________________________

/* Definition of function ("function.c")*/

/*
#include <stdlib.h> Should I include the headers again here?
#include <stdio.h>
*/

int function (void)
{
printf("You know it right, baby!\n");
}

如果我想在自定义函数中使用一个特殊的头文件及其函数,但在主程序中不需要它呢?

我使用 C,但将来想使用 C++。如果每个答案之间的任何差异与使用相关,请提及。

非常感谢您的回答。

最佳答案

根据您的示例,您应该有一个 function 的头文件,并且它应该包含在两个源文件中。您想将 function.h 包含在 function.c 中,这样如果由于某种原因您需要更改 的签名,您就不会忘记更改头文件>function() 喜欢添加参数或更改返回类型。

主.c

// Include any standard headers needed here
#include <stdio.h>
#include "function.h"

int main (void)
{
printf("Calling function()");
function();
return(0);
}

函数.h

#ifndef _FUNCTION_H_
#define _FUNCTION_H_

// Include only those headers that this header file needs

int function(void);

#endif

函数.c

#include <stdio.h>
#include "function.h"

int function (void)
{
printf("Hello\n");
}

关于c - 在自定义函数中再次包含相同的头文件,哪些已经包含在主程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58324106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com