我一直想知道编译超过 1000 行代码的项目的最佳方法。我只是有一些关于编译项目的最佳方式的基本问题。我正在使用 GCC,如果它有所作为的话。我的问题是:
- 在多个源文件中包含一个库是否会导致函数被复制两次?
我的意思是,如果我有两个这样的文件:
源代码
#include<stdio.h>
...
void static test_func( ){ printf( "Hey!" ); }
Source2.c
#include<stdio.h>
...
void static test_func( ){ printf( "Hey!" ); }
函数 printf 是否被复制到可执行文件中两次?我想我想避免这种情况,因为很多时候我会有多个共享相同头文件的源文件,我想知道这是否是一种不好的做法。
有一次,我只是通过使用这个来包含其他源文件:
来源.c
#include<stdio.h>
#include "source2.c"
但我不确定这是否也是一种不好的做法。这让我想到了另一个问题:
- 包含源文件是一种不好的做法吗?
注意:通过不良做法,我的意思是如果某些事情违反惯例或导致某种低效率。
编辑:我刚刚读到这些库是在文件之间共享的。我来宾,这意味着我的第一个问题的答案是否定的。但是,我很好奇,是否使用预处理器包含源文件是一种常见的做法。