我自己做项目,把main和c源码保存在一个文件里,头文件保存在codeblocks的include目录下。当我从项目主函数中调用我的函数时,它编译得很好。但是当我#include
将头文件转到其他文件以供使用时,编译器找不到这些函数。原型在标题中,但它们的定义在另一个文件中的源代码中。我可以访问存储在标头中的预处理器常量和宏,但函数原型与其源代码之间的链接似乎不存在于实际项目之外。
我的目标是制作头文件,就像我正在使用的现有文件(stdio.h、stdlib.h 等)一样。我在任何地方都找不到任何有用的东西。帮帮我,我已经在这几天了!
我知道我可以使用更简单的功能制作 .c 文件,但我想要挑战,想要创建 lib 文件,而且我是一个性能狂(据我所知,使用 .h 文件而不是 .c 文件是效率更高,但不记得为什么。)
头文件:
#ifndef FIRO_H_INCLUDED
#define FIRO_H_INCLUDED
#include <stdbool.h>
#define MA_TA 69
bool checkprime(unsigned long long);
int square(int);
#endif // FIRO_H_INCLUDED
源代码:
#include "firo.h"
#include <math.h>
bool checkprime(unsigned long long prime)
{
unsigned long long root=(unsigned long long)(sqrt(prime)+1);
unsigned long long i;
for(i=2; i<=root; i<3?(i++):(i+=2))
{
if(prime%i==0)
return false;
}
return true;
}
int square(int a)
{
return a*a;
}
我希望得到一个答案,而不是讽刺。我确实在某处读过,将代码分别分割成 .h 文件和源代码会以某种方式加速访问函数的过程,不要怪我不知道它是如何工作的。我实际使用的 checkprime 功能,其余的只是用于测试。