从头文件中声明的另一个文件中调用函数

约翰

我想调用一个位于sin.c中的函数,而主文件位于test1.c中

文件看起来像这样:

文件test1.c:

    #include <stdio.h>
    #include <stdlib.h>
    #include "sin.h"

    int main(){
       float angle;
       double sinValue;

       printf("Please enter a angle: ");
       scanf("%f", &angle);

       sinValue = sin(angle);

       printf("the sin value of this angle is: %2.7f.", sinValue);
       printf("program terminated");

       return 0;
    }

这是头文件:

在sin.h中:

extern double sin(float angle);

在文件sin.c中:

#include <math.h>
#include <stdlib.h>
#define EPSILON 0.0000001;

int fact(int n);

double sin(float angle){

    float rad;
    float pi = M_PI;
    double newSin, oldSin;
    double n = 1.0;
    double token;


    //find the radians
    rad = angle * M_PI / 180.0;
    newSin = rad;

    //find the approxmate value of sin(x)
    while((newSin - oldSin) > EPSILON ){

        oldSin = newSin;
        token = 2.0 * n - 1.0;
        newSin = oldSin + pow(-1.0, n) * pow(rad, token) / fact(token);
        n++;
    }

    return newSin;
}

问题是当我编译test1.c时,错误消息显示:

sin.h:1:15: warning: conflicting types for built-in function ‘sin’      [enabled by default]
 extern double sin(float angle);
               ^
/tmp/ccxzixfm.o: In function `main':
test1.c:(.text+0x39): undefined reference to `sin'
collect2: error: ld returned 1 exit status
make: *** [test1] Error 1

它已经在头文件中声明了,并且我还包含了该头文件,所以有什么错误。我很混乱。

谢谢,约翰。

我使用“ make”命令来编译test1.c

这是编译过程:

zxz111@ubuntu:~/Desktop/sin$ ls
sin.c  sin.c~  sin.h  test1.c  test1.c~
zxz111@ubuntu:~/Desktop/sin$ make test1
cc     test1.c   -o test1
In file included from test1.c:3:0:
sin.h:1:15: warning: conflicting types for built-in function ‘sin’ [enabled by default]
 extern double sin(float angle);
               ^
/tmp/ccxzixfm.o: In function `main':
test1.c:(.text+0x39): undefined reference to `sin'
collect2: error: ld returned 1 exit status
make: *** [test1] Error 1
zxz111@ubuntu:~/Desktop/sin$ make test1
亚历杭德罗·迪亚兹(Alejandro Diaz)

您需要将两个源文件都传递给编译器。

如果您使用的是GCC,则可能是:

gcc sin.c main.c -o main

尽管您的fact()函数似乎没有在任何地方sin()定义,并且<math.h>已经在其中定义了命名函数,但您可能想重命名您的函数

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++在另一个类头文件中声明一个类

来自分类Dev

从BrightScript中的另一个文件调用函数

来自分类Dev

从BrightScript中的另一个文件调用函数

来自分类Dev

在另一个Lisp文件中调用函数

来自分类Dev

在另一个头文件中包括头文件中的typedef枚举

来自分类Dev

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

来自分类Dev

Makefile | 对头文件中包含的另一个头文件的依赖

来自分类Dev

如何在一个文件中声明并从另一个文件中调用的参数中编程带有PHP的可重用函数?

来自分类Dev

如何在一个文件中调用一个声明的变量到另一个文件?

来自分类Dev

我可以在内核模块中调用在内核源文件的另一个头文件中定义的静态内联函数吗?

来自分类Dev

在python中另一个文件中的另一个类中调用函数

来自分类Dev

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

来自分类Dev

如何从另一个QML文件调用QML文件中定义的Javascript函数?

来自分类Dev

通过Matlab中的另一个函数文件调用.m文件

来自分类Dev

如何从另一个QML文件调用QML文件中定义的Javascript函数?

来自分类Dev

在一个jsp文件中创建Java函数,然后从另一个jsp文件中调用它

来自分类Dev

在一个jsp文件中创建Java函数,然后从另一个jsp文件中调用它

来自分类Dev

在QML中的TabView内的另一个QML文件中调用函数或属性

来自分类Dev

如何在Scala中的另一个文件中调用函数?

来自分类Dev

React组件中另一个文件中的React JS调用函数

来自分类Dev

调用另一个文件中的类和函数以编辑该类中的变量

来自分类Dev

使用node.js在javascript中的另一个文件中调用函数

来自分类Dev

如何在 PHP 中调用另一个控制器文件中的函数?

来自分类Dev

从同一脚本文件中调用另一个函数

来自分类Dev

如何在Azure中从一个csx文件调用函数到另一个csx文件?

来自分类Dev

从另一个文件调用时找不到在一个文件中定义的函数

来自分类Dev

C ++如何同时从另一个文件中调用与另一个文件中的函数同名的函数?

来自分类Dev

从头文件调用函数

来自分类Dev

C:如何用makefile编译另一个头文件中包含的头文件?

Related 相关文章

  1. 1

    C ++在另一个类头文件中声明一个类

  2. 2

    从BrightScript中的另一个文件调用函数

  3. 3

    从BrightScript中的另一个文件调用函数

  4. 4

    在另一个Lisp文件中调用函数

  5. 5

    在另一个头文件中包括头文件中的typedef枚举

  6. 6

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

  7. 7

    Makefile | 对头文件中包含的另一个头文件的依赖

  8. 8

    如何在一个文件中声明并从另一个文件中调用的参数中编程带有PHP的可重用函数?

  9. 9

    如何在一个文件中调用一个声明的变量到另一个文件?

  10. 10

    我可以在内核模块中调用在内核源文件的另一个头文件中定义的静态内联函数吗?

  11. 11

    在python中另一个文件中的另一个类中调用函数

  12. 12

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

  13. 13

    如何从另一个QML文件调用QML文件中定义的Javascript函数?

  14. 14

    通过Matlab中的另一个函数文件调用.m文件

  15. 15

    如何从另一个QML文件调用QML文件中定义的Javascript函数?

  16. 16

    在一个jsp文件中创建Java函数,然后从另一个jsp文件中调用它

  17. 17

    在一个jsp文件中创建Java函数,然后从另一个jsp文件中调用它

  18. 18

    在QML中的TabView内的另一个QML文件中调用函数或属性

  19. 19

    如何在Scala中的另一个文件中调用函数?

  20. 20

    React组件中另一个文件中的React JS调用函数

  21. 21

    调用另一个文件中的类和函数以编辑该类中的变量

  22. 22

    使用node.js在javascript中的另一个文件中调用函数

  23. 23

    如何在 PHP 中调用另一个控制器文件中的函数?

  24. 24

    从同一脚本文件中调用另一个函数

  25. 25

    如何在Azure中从一个csx文件调用函数到另一个csx文件?

  26. 26

    从另一个文件调用时找不到在一个文件中定义的函数

  27. 27

    C ++如何同时从另一个文件中调用与另一个文件中的函数同名的函数?

  28. 28

    从头文件调用函数

  29. 29

    C:如何用makefile编译另一个头文件中包含的头文件?

热门标签

归档