c - 警告:传递“Proc_Start”参数 3 的指针目标在符号上不同
问题描述
我的 stm32 目标的 C 代码有问题。
我收到此错误:
警告:传递“Proc_Start”参数 3 的指针目标在符号上不同
我真的不知道为什么,我在网上搜索了类似的主题,但主题中提出的解决方案都没有帮助我。
我为您提供了问题所在的代码以及注册错误的宏的定义
编译产生错误的地方
void AppGestRelay_Init(u8 u8lvoie)
{
//Init Dac value for alim
u16 u16lDacValue = (((41435.4-Param.vcoil[u8lvoie])/16376.2)/2.48)*1024;
DrDac_SetValueChip(u8lvoie+1, u16lDacValue);
//Init discharge mode
mProcStartParam(AppGestRelay_DischargeMode, &u8lvoie);
//test
TrackAlt[TRACK1] = ALTER_POS;
TrackRunning[u8lvoie] = TRACK_NOT;
}
宏的定义
#define mProcStart(fonct) Proc_Start(fonct, NULL, (const s8*)#fonct)
#define mProcStartParam(fonct,param) Proc_Start(fonct, (TProcParam)(param), #fonct)
用宏调用的函数
P_PROC(AppGestRelay_DischargeMode)
{
static u8 u8lvoie;
P_BEGIN;
u8lvoie = *(u8*)P_PARAM;
if(TRUE == Param.zener[u8lvoie])
{
PcfDataW.pin7[u8lvoie] = PIN_OFF;
printf("on\r");
P_DELAY(mTICK_MS(10));
PcfDataW.pin7[u8lvoie] = PIN_ON;
printf("off\r");
}
else
{
PcfDataW.pin6[u8lvoie] = PIN_OFF;
printf("on\r");
P_DELAY(mTICK_MS(10));
PcfDataW.pin6[u8lvoie] = PIN_ON;
printf("off\r");
}
P_EXIT();
P_CLEANUP;
P_END;
}
非常感谢您未来的帮助
编辑 :
我已经尝试过,但是添加第三个参数并没有给出警告,而是一个错误,说宏只需要 2 个参数
宏“mProcStartParam”传递了 3 个参数,但只需要 2 个
该代码通过稍微修改 AppGestRelay_Init() 函数来工作,但仍然有警告,我想知道它来自哪里
谢谢 :)
void AppGestRelay_Init(u8 u8lvoie)
{
static u8 u8lTrack;
//Init Dac value for alim
u16 u16lDacValue = (((41435.4-Param.vcoil[u8lvoie])/16376.2)/2.48)*1024;
DrDac_SetValueChip(u8lvoie+1, u16lDacValue);
//Init discharge mode
u8lTrack = u8lvoie;
mProcStartParam(AppGestRelay_DischargeMode, &u8lTrack);
//wait discharge mode is set
while(Proc_IsActif(AppGestRelay_DischargeMode))
{
P_SCHEDULE();
}
TrackRunning[u8lvoie] = TRACK_NOT;
}
解决 :
通过在 mProcStartParam 的定义中的 #fonct 前面添加 (const s8*) 警告消失,就像在 mProcStart 的定义中一样
#define mProcStartParam(fonct,param) Proc_Start(fonct, (TProcParam)(param), (const s8*) #fonct)
谢谢
解决方案
据推测,该函数的第三个参数Proc_Start
需要 a (signed char*)
。
#fonct
计算为一个类型为 的字符串(char*)
。
您已经编写(const s8*)#fonct
了一个宏,为什么不在另一个中尝试呢?
推荐阅读
- haskell - 在 Haskell 中增加元组计数的函数
- github - Github 合并 API 返回 404 Not Found
- google-cloud-platform - 您可以更改 Google Cloud 项目的组织所有权吗
- javascript - 使用 Jquery 在 Json 数据的 html 可扩展表中显示数据
- powerbi - Power BI 中的关系创建困难
- android - 在 Android Studio 中插入数据
- python - 如何将条件应用于 Pandas 数据框行,但仅将条件应用于同一天的行?
- vue.js - 使用 axios-mock-adapter 的路径参数在 Nuxt asyncData() 中请求失败,状态码为 404
- android - android studio 上的 Flutter 构造函数错误。一直显示错误
- react-native - 文件未从模拟器发送