如何在不同的文件中划分C代码
How to divide C code in different files
我现在正在用 C 编写代码,但问题是它非常大。我一直在研究如何分离这段代码,更有吸引力的解决方案是尝试将一些通用函数放在头文件中,而不是将它们放在我的 .c 代码的开头。
当我读到这个头文件并且我看到它们用于定义 MACROS 时,问题就来了。我开始阅读它,我看到的是我对变量的奇怪定义(我的意思是奇怪,因为我通常不会在 .c 文件中定义那种变量)。
在动手之前有没有想过如何做到这一点?
只要我理解你的问题,你正在尝试为你的项目制作一个 header 文件,对吗?如果是这种情况,也许您指的是#ifndef、#endif 等。这些是将由预处理器执行的命令。你应该读一读。完成 header 后,将其保存为 .h 扩展名。此外,当包含您的 header 时,它必须位于 .c 文件的同一文件夹中,并且您必须像这样包含它:
#include "myHeader.h"
在 header 中,您只需写下函数的原型。然后创建.c 文件myHeader.c 并执行实际功能。请记住将您 header 包含在您的两个 .c 文件中。
要编译它,请使用以下命令:
gcc -c myFile.c -o myFile.o
gcc -c myHeader.c -o myHeader.o
然后你必须 link objects 然后你就完成了:
gcc myFile.o myHeader.o -o filename
我现在正在用 C 编写代码,但问题是它非常大。我一直在研究如何分离这段代码,更有吸引力的解决方案是尝试将一些通用函数放在头文件中,而不是将它们放在我的 .c 代码的开头。
当我读到这个头文件并且我看到它们用于定义 MACROS 时,问题就来了。我开始阅读它,我看到的是我对变量的奇怪定义(我的意思是奇怪,因为我通常不会在 .c 文件中定义那种变量)。
在动手之前有没有想过如何做到这一点?
只要我理解你的问题,你正在尝试为你的项目制作一个 header 文件,对吗?如果是这种情况,也许您指的是#ifndef、#endif 等。这些是将由预处理器执行的命令。你应该读一读。完成 header 后,将其保存为 .h 扩展名。此外,当包含您的 header 时,它必须位于 .c 文件的同一文件夹中,并且您必须像这样包含它:
#include "myHeader.h"
在 header 中,您只需写下函数的原型。然后创建.c 文件myHeader.c 并执行实际功能。请记住将您 header 包含在您的两个 .c 文件中。
要编译它,请使用以下命令:
gcc -c myFile.c -o myFile.o
gcc -c myHeader.c -o myHeader.o
然后你必须 link objects 然后你就完成了:
gcc myFile.o myHeader.o -o filename