是否有可能只有没有源文件的C头文件

cco*_*gli 0 c compilation header

我想编写一个快速访问的C库,只包含头文件而不使用编译库.为此,我已将我的代码直接包含在我的头文件中.

头文件包含:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#ifndef INC_TEST_H_
#define INC_TEST_H_

void test(){
    printf("hello\n");
}

#endif
Run Code Online (Sandbox Code Playgroud)

我的程序没有编译,因为我有多个函数引用test().如果我有一个正确的源文件与我的标题,它的工作没有错误.

是否可以通过在C应用程序中包含代码来仅使用头文件?

Tom*_*m's 6

在头文件中包含代码通常是一个非常糟糕的主意.

如果您有"file1.c"和"file2.c",并且在每个中都包含"编码.h",那么在编译的链接部分,将有2个具有全局范围的测试函数(一个在file1.c和file2.c中的另一个).

你可以使用"静态"这个词,以便说明该函数仅限于包含"编码.h"的.c中,但是再次,这是一个坏主意.

至少但不是最后一个:你打算如何在没有.so/.a文件的情况下创建一个库?这不是库,这是您项目中直接复制/过去的代码.

当你的"库"中出现错误时,除了纠正你的代码,在每个项目中重新发布它并重新编译每个项目,你都没有任何解决方案,错过了动态库的重点:"正确"纠正的能力图书馆没有触及每个使用它的程序.