我有这个文件夹结构:
我写了一个简单的函数来测试文件夹结构,以查看是否所有头文件都存在,但是当我使用make命令编译时,我会遇到以下错误:
warning: function 'stampa' has internal linkage but is not defined
在lagrange.h
文件中, 我有以下内容:
#ifndef LAGRANGE_H
static void stampa(int i);
#endif /* LAGRANGE_H */
在 lagrange.c
文件中,我有以下代码:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <stdio.h>
void stampa(int i){
printf("%d", i);
}
最终,在 main.c
中,我只是调用了函数 stampa
并传递了一个数字。
lagrange.h
中放置#define LAGRANGE_H
。 - Weather Vanelagrange.h
中的static
关键字删除。 - user3386109#include "lagrange.h"
。 - user3386109static
表示“仅在此源文件中使用”。如果将其放在头文件中,则要么没有意义,要么会在包含它的每个文件中创建一个新的函数副本。这不是你想要的结果。 - Zan Lynx