gpt4 book ai didi

c - 在头文件中包含C文件

转载 作者:行者123 更新时间:2023-11-30 18:29:46 24 4
gpt4 key购买 nike

在头文件中包含 C 文件是否正确?一个例子:

myheader.h

#ifndef MYHEADER_H
#define MYHEADER_H

#include <stdio.h>

void foo();

#include "myfile.c"

#endif // MYHEADER_H

myfile.c

#include "myheader.h"

void foo()
{
puts("I'm foo!!");
}

有了这个,我可以使用 gcc -o main main.c 而不是 gcc -o main main.c myfile.c 进行编译,其中 main 使用 foo ().

最佳答案

这是合法的,但这并不意味着这是一个好的做法。

编译是通过翻译单元完成的,这些翻译单元从单个源文件独立编译为目标文件。

随后所有这些翻译单元都链接在一起以生成最终的二进制文件。

现在,这允许您在源文件中隐藏应仅在该源文件本地的内容(包括本地类型并防止名称冲突),这也意味着您将仅公开真正意味着的内容通过头文件公开。

这是管理封装和保持代码可维护的好方法,所以是的,你可以这样做,但你不应该这样做。

关于c - 在头文件中包含C文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35540426/

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