c - 错误 "undefined reference to"

标签 c

我已经用 C 创建了一个基本脚本,但我在控制台中收到一个奇怪的错误。有人可以告诉我为什么我的脚本会给出此消息:

undefined reference to 'is_substance_within_x_percent'


源代码:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>   
#define P 0.3    

#ifndef BOILING_POINTS_H    
#define BOILING_POINTS_H    
#define SUBSTANCE_CARBONDIOXIDE  -78.5    
#define SUBSTANCE_AMMONIA        -35.5    
#define SUBSTANCE_WAX             45.0    
#define SUBSTANCE_WATER          100.7    
#define SUBSTANCE_OLIVE_OIL      300.0    
#define SUBSTANCE_MERCURY        356.9    
#define SUBSTANCE_SULFUR         444.6    
#define SUBSTANCE_TALC          1500.0    
#define SUBSTANCE_SILVER        2212.0    
#define SUBSTANCE_COPPER        2562.0        
#define SUBSTANCE_GOLD          2700.0    
#define SUBSTANCE_IRON          2862.0    
#define SUBSTANCE_SILICON       3280.0    
#endif    

int is_substance_within_x_percent(double t,double p,double boils);

int main( )    
{
    double t, p, boils;    
    int substance;    

    is_substance_within_x_percent(t, p, boils);    

    printf("Enter the boiling temperature of the substance.\n");    
    scanf("%lf", &t);    

    return EXIT_SUCCESS;    
}

char * substance_name(double t,int substance)    
{
    if (t >= SUBSTANCE_CARBONDIOXIDE - P *substance && t <= SUBSTANCE_CARBONDIOXIDE + P *substance)    
    printf("The substance found is Carbon Dioxyde");    

    else if (t >= SUBSTANCE_AMMONIA - P *substance && t <= SUBSTANCE_AMMONIA + P *substance)    
    printf("The substance found is Ammonia");    

    else if (t >= SUBSTANCE_WAX - P *substance && t <= SUBSTANCE_WAX + P *substance)    
    printf("The substance found is Wax");    

    else if (t >= SUBSTANCE_WATER - P *substance && t <= SUBSTANCE_WATER + P *substance)    
    printf("The substance found is Water");    

    else if (t >= SUBSTANCE_OLIVE_OIL - P *substance && t <= SUBSTANCE_OLIVE_OIL + P *substance)    
    printf("The substance found is Olive Oil");    

    else if (t >= SUBSTANCE_MERCURY - P *substance && t <= SUBSTANCE_MERCURY + P *substance)    
    printf("The substance found is Mercury");    

    else if (t >= SUBSTANCE_SULFUR - P *substance && t <= SUBSTANCE_SULFUR + P *substance)    
    printf("The substance found is Sulfur");    

    else if (t >= SUBSTANCE_TALC - P *substance && t <= SUBSTANCE_TALC + P *substance)    
    printf("The substance found is Talc");    

    else if (t >= SUBSTANCE_SILVER - P *substance && t <= SUBSTANCE_SILVER + P *substance)    
    printf("The substance found is Silver");    

    else if (t >= SUBSTANCE_COPPER - P *substance && t <= SUBSTANCE_COPPER + P *substance)    
    printf("The substance found is Copper");    

    else if (t >= SUBSTANCE_GOLD - P *substance && t <= SUBSTANCE_GOLD + P *substance)    
    printf("The substance found is Gold");    

    else if (t >= SUBSTANCE_IRON - P *substance && t <= SUBSTANCE_IRON + P *substance)    
    printf("The substance found is Iron");    

    else if (t >= SUBSTANCE_SILICON - P *substance && t <= SUBSTANCE_SILICON + P *substance)    
    printf("The substance found is Silicon");    

    else    
    printf("This substance is unidentified.");    
}

最佳答案

首先,将第二个函数的名称更改为 is_substance_within_x_percent

第二,你没有在 main 中使用substance。

第三,为什么扫描而不使用它。

第四,在 main 中,您声明了三个双参数,并将它们传递给函数,但不知道其中的内容。

关于c - 错误 "undefined reference to",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42457523/

相关文章:

python - 将 Waf 目标链接到由外部构建系统 (CMake) 生成的库

c - 如何在 C 中转换没有赋值的指针?

c - C中命令行的多个输入参数

c - Eclipse:如何添加自动完成要使用的包含路径

c - 用于读取串口的 read 系统调用中的超时事件

c - fork的共享内存

c - fork() 和二叉树创建

c - 将矩阵作为参数传递给函数

c - 指针和 getstring 函数

android - 为 Android 上的 MediaStreamer2 控制台应用程序提供 JVM