是个cpp文件,用来具体定义一个类,类名为PowerCubeCtrl_SMP,用以操作硬件。先简单写写程序:#include "***"
PowerCubeCtrl_SMP::PowerCubeCtrl_SMP{***}
void PowerCubeCtrl_SMP::zerolog{***} //member function
//下面是问题代码
eSMPReturnCode SMP_Confirm_GetState( sSMPInterface* interface, uSMPMessageID message_id, float* position,******) {***}
检索了其他代码eSMPReturnCode是这么定义的:
typedef enum {}eSMPReturnCode;
eSMPReturnCode表示一个枚举型的数据结构问题
1这个eSMPReturnCode SMP_Confirm_GetState{}部分是成员函数?还是啥?怎么一个定义类的代码,就平空多出来eSMPReturnCode SMP_Confirm_GetState{}这么一段?
2如果是函数?应该怎么调用?或者不需要调用?因为我在主函数,及其他文件中没见到SMP_Confirm_GetState被调用,所以问这个问题对c++才开始理解,问题不知道提的对不对,非常感谢

解决方案 »

  1.   

    这个eSMPReturnCode SMP_Confirm_GetState{}这个函数应该是取那硬件的状态的。直接调用这个函数取那状态值,不用传入参数!!!枚举型不就是unsigned int吗?0,1,2,3.
      

  2.   

    这个eSMPReturnCode SMP_Confirm_GetState{}这个函数应该是取那硬件的状态的。直接调用这个函数取那状态值,不用传入参数!!!枚举型不就是unsigned int吗?0,1,2,3.
      

  3.   

    在cpp文件里,是可以定义不属于某个类的函数的,并且可以调用,可以编译的!也许这是c的风格吧!
    很多源程序都有类似的搞法
      

  4.   

    既然在CPP文件中,定义时前面没有加类名,那么这个函数就不是类的成员函数,应该是一个全局函数。至于如何被调用,这个就不好说了,没有代码不好说。一个函数除了显式调用之外,还有可能是回调函数,至于这个函数是不是回调就不清楚了。
      

  5.   

    全局函数,表示返回的值是eSMPReturnCode 类型, 在那个类里面可以直接调用
      

  6.   

    那就没有c风格这种说法,hehe
      

  7.   

    刚简单问问了助教又,听的半懂不懂,大致好象说这是一个callback函数,硬件要调用此函数,进行操作。由此是不是能说明这是一个回调函数?
      

  8.   

    第一,这个写法不是什么C风格,C语言中根本就没有类,也没什么成员数。对C++来说,并不是所有的函数都是类的成员函数,有时候还是要有全局函数的,而你所问的那个函数就是标准的全局函数的写法了。
    第二,callback函数就是回调函数,所以谓回调函数就是你写好函数,由系统进行调用。最常见的回调用函数就是Windows程序中的消息处理函数了,当有消息来时,系统会自己调用你写的消息处理函数,而不用你自己显式的调用。估计你所说的这个函数也是类似的。当某个理件发生时,系统会自己调用这个函数,这种函数就是回调函数。