如何使用在多个头文件中声明的函数

用户13363944

所以我有三个文件,main.c, ah, bh
在所有三个文件中,我都声明了以下函数

int test(int a, int b)
{
  if(a>b)
    return a;
  else return b;
}

无论如何我可以在主程序中使用该函数,但来自不同的位置(从 ah,然后从 bh,然后从 main.c),因为现在我有这个错误:错误:重新定义测试

为了更好地理解,我将在此处发布声明:

在两个库中编写 test() ah 和 bh 在一个程序中包含这两个库。调查如何使用 ah 或 bh 中的 test() 如果我也在主程序中定义 test() 并且我想使用主程序、库 ah 或 bh 中的 test() 怎么办?

main.c 中的代码是这样的:

#include <stdio.h>
#include <stdlib.h>
#include "a.h"
#include "b.h"
int test(int a, int b) //Function for showing the max
{
    if(a > b)
        return a;
    else return b;
}

int main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    test(a, b);

    return 0;
}

ah 中的代码与 bh 中的代码相同:

#ifndef CODE_a_H
#define CODE_a_H

int test(int a, int b) //Function for showing the max
{
    if(a > b)
        return a;
    else return b;
}

#endif
托弗罗

对被告有疑问。

也许你应该在这个作业中学到一些东西。而“某事”可能是“不要这样做”。

您显然已经学到的是,由于重复的符号,这将不起作用。

您可以在预处理器的帮助下生成工作程序。

将定义扩展test()

#ifndef CODE_a_H
#define CODE_a_H

#ifndef TEST_DEFINED
#define TEST_DEFINED
int test(int a, int b) //Function for showing the max
{
    if(a > b)
        return a;
    else return b;
}
#endif
#endif

根据#include主程序中的顺序,您包含的第一个文件的定义将在程序中结束。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从多个头文件的接口中声明重写的函数时,如何避免重复的代码?

如何使用在我的头文件中声明的枚举?

单个头文件中的命名空间和类及其方法定义如何在多个头文件或cpp文件中使用呢?

在C中链接多个头文件

如何在C ++中将多个头文件导出为单个头文件?

多个类在多个头文件中相互引用

如何让一个头文件中的声明访问三个单独的视图控制器?

如何正确地为函数创建一个头文件,而没有多个定义错误?

如何使用在包含使用符号的文件的文件中声明的符号(函数、字段、类等)。C++

在qmake中进行编译之前,如何使用可执行文件构建多个头文件?

如何在另一个头文件中包含c头文件?

C++ 友元函数不起作用(有多个头文件和源文件)

C++ - 在另一个头文件中包含一个头文件以使全局变量可用于数组声明

为什么多个头文件和源文件中的 C++ 继承不起作用?

您可以在一个库中实现多个头文件吗?

AWK - 将多个头文件拆分为单独的文件?

如何只列出文件夹中的n个头文件?

C ++:如何初始化使用两个头文件的对象?

为什么在另一个头文件中声明结构会导致LNK2001错误?

在C ++中使用另一个头文件中的抽象类

我需要相互包含两个头文件而不使用前向声明导致“不完整类型”错误

如何检查每个头文件包括必需的包含文件?

错误:函数类型冲突,函数在头文件中声明

如何在头文件中声明具有未知参数数据类型的函数?

两个头文件中定义的相同类型

您可以为DLL创建多个头文件吗?您可以合并头文件吗?

函数声明顺序在头文件中是否重要?

在“ C”头文件中声明的静态函数

应该将以== default声明的函数仅放在头文件中