包括多少图书馆?

时间:2014-03-17 12:12:06

标签: atlas

关于C和编译器的一些基本问题。

我打算使用ATLAS库,但是我只会使用两到三个算法。是这样,如果我只包含一个标题,那么只会构建标题并且我的SW不会变得太大?或者是否包含整个ATLAS库?那么最好只剪切和粘贴该算法?

1 个答案:

答案 0 :(得分:0)

如果您使用#include指令,那么整个头文件就会粘贴到您的文档中。 #include是递归的,即它嵌套(最多256个级别),因此包含的文件中包含#include d的内容也是如此。举个例子:

yourprogram.clib1.hlib2.h

/* yourprogram.c */
#include <lib1.h>

int main(void)
{
    printf("Hello, world.");
    return 0;
}

/* lib1.h */
#include <lib2.h>

void function1(void);
void function2(void);

/* lib2.h */

void function3(void);
void function4(void);

预处理后

/* yourprogram.c (after preprocessing) */

void function3(void);    
void function4(void);

void function1(void);
void function2(void);

int main(void)
{
    printf("Hello, world.");
    return 0;
}