C 未使用的参数“status”的用法是什么?
我不明白函数中status参数的用法C 未使用的参数“status”的用法是什么?,c,function,parameters,C,Function,Parameters,我不明白函数中status参数的用法 void TC0_CH0_TimerInterruptHandler( TC_TIMER_STATUS status , uintptr_t context ); 有人能解释一下为什么写代码的人会包含这个显然无用的参数吗 #include "definitions.h" static bool volatile bToggleLED = false; void TC0_CH0_TimerInterruptHandler(TC_TIM
void TC0_CH0_TimerInterruptHandler( TC_TIMER_STATUS status , uintptr_t context );
有人能解释一下为什么写代码的人会包含这个显然无用的参数吗
#include "definitions.h"
static bool volatile bToggleLED = false;
void TC0_CH0_TimerInterruptHandler(TC_TIMER_STATUS status , uintptr_t context)
{
bToggleLED = true;
}
int main ( void )
{
SYS_Initialize(NULL);
TC0_TimerCallbackRegister( TC0_CH0_TimerInterruptHandler, (uintptr_t)NULL);
TC0_TimerStart();
while ( true )
{
if ( bToggleLED )
{
bToggleLED = false;
LED_Toggle();
}
}
return EXIT_FAILURE;
}
即使在这个特定的函数中,状态参数未使用,它也是必需的,因为该函数是一个中断处理程序,或者通常是以后作为函数指针传递的 请参见代码中如何实例化:它是TC0_TimerCallbackRegister函数的第一个参数:
TC0_TimerCallbackRegister( TC0_CH0_TimerInterruptHandler, (uintptr_t)NULL);
此函数的定义如下
TC0_TimerCallbackRegister( void (* fun)(TC_TIMER_STATUS status , uintptr_t context), uintptr_t par)
它不仅在第一个参数中需要一个函数指针,而且还需要一个指向具有该特定签名的函数的指针。这就是为什么TC0\u CH0\u TimerInterruptHandler也需要用status参数定义:省略该参数会导致编译错误。即使在这个特定函数中,status参数未使用,它也是必需的,因为该函数是一个中断处理程序,或者通常是以后作为函数指针传递的内容 请参见代码中如何实例化:它是TC0_TimerCallbackRegister函数的第一个参数:
TC0_TimerCallbackRegister( TC0_CH0_TimerInterruptHandler, (uintptr_t)NULL);
此函数的定义如下
TC0_TimerCallbackRegister( void (* fun)(TC_TIMER_STATUS status , uintptr_t context), uintptr_t par)
它不仅在第一个参数中需要一个函数指针,而且还需要一个指向具有该特定签名的函数的指针。这就是为什么TC0\u CH0\u TimerRinterUptHandler也需要使用状态参数定义:忽略该参数将导致编译错误。TC0\u TimerCallbackRegister的第一个参数是一个接受两个参数的函数:TC\u TIMER\u status status和uintptr\t context。上下文是您提供的值,即uintpttr_tNULL。调用回调的代码将提供状态值;TC_定时器_状态是定义的枚举
这个想法——我相信,因为我找不到文档——是您可以检查计时器标志,看看计时器是否溢出,或者与计数器匹配,或者两者都没有发生
函数原型必须与预期匹配,因此TC0\u CH0\u TimerRinterRuptHandler需要两个参数,即使两个参数都没有使用。TC0\u TimerCallbackRegister的第一个参数是一个接受两个参数的函数:TC\u TIMER\u状态和uintptr\t上下文。上下文是您提供的值,即uintpttr_tNULL。调用回调的代码将提供状态值;TC_定时器_状态是定义的枚举
这个想法——我相信,因为我找不到文档——是您可以检查计时器标志,看看计时器是否溢出,或者与计数器匹配,或者两者都没有发生
函数原型必须与预期匹配,因此TC0\u CH0\u TimerInterruptHandler需要两个参数,即使两个参数都没有使用