You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言跨.c文件调用带指针参数函数变量未声明报错如何解决

问题原因
  • C语言强制要求变量先声明再使用,你在主函数循环中用到的tempWert、phWert、avin三个变量均未提前定义,编译器无法识别这三个标识符,因此抛出未声明错误。
  • 你当前的函数调用顺序存在逻辑问题:首次调用phMessung时传入的tempWert还没有通过tempMessung赋值,使用的是内存中的随机垃圾值,会导致pH计算结果异常。
修复方案
  1. 首先在主函数的while循环前,声明三个对应类型的变量,可同时赋予初始值避免编译器报未初始化警告:
double tempWert = 0.0;
double phWert = 0.0;
double avin = 0.0;
  1. 调整两个函数的调用顺序,先执行温度采集获取有效温度值,再传入温度值计算pH参数,修改后主函数代码示例如下:
#include "Messung.h"
#include "main.h"
// 其余头文件、宏定义等代码省略

int main(void)
{
    // 芯片、外设初始化等原有代码省略
    // 新增变量声明
    double tempWert = 0.0;
    double phWert = 0.0;
    double avin = 0.0;

    while (1) {
        // 先采集温度
        tempMessung(&tempWert);
        // 再用有效温度值计算pH
        phMessung(tempWert, &phWert, &avin);

        if(AD7793_Error()) while(1);
        HAL_Delay(10);
    }
}

内容的提问来源于stack exchange,提问作者Marc Hammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:42:01