美高梅官方网站3045-mgm6608美高梅app下载
C程序中引用自定义的C函数模块

C程序中引用自定义的C函数模块

作者:美高梅官方网站    来源:未知    发布时间:2020-02-03 12:54    浏览量:

百依百顺学习了alljoyn官方的PC端例子代码之后,有童鞋会感觉官方代码未有依据模块化的秘技来写,全部类、函数全部给整在了一个文件中。功效大器晚成旦复杂起来,就倒霉定位查找了。所以就尝试性地把alljoyn程序模块化,根据c++程序的包裹理念,自定义七个类MyBusAttachment,MyBuslisterner,MyBusObject。具体的做法得以是那般:MyBusAttachment.h

大家理解,刚领头接触C语言编制程序,常常都是在四个.c恐怕.cpp的公文中编辑代码,在那之中料定会有四个入口函数,

classServiceBusAttachment:publicBusAttachment{public:ServiceBusAttachment(constchar*appname,boolf);voidadvertiseService(constTransportMaskmask,MyBusListenerbusListener);voidcreateInterface();private:voidrequestName();voidadvertiseName(TransportMaskmask);voidcreateSession(constTransportMaskmask,MyBusListenerbusListener);};

也正是main(State of Qatar函数,你能够将程序代码全体写在main函数里,当然即便你想要程序更为模块化,也能够将部分操作写在三个函数

MyBuslisterner.h

里,那几个函数的证明和定义也都是在main函数中。

classMyBusListener:publicBusListener,publicSessionPortListener,publicSessionListener{public:virtualboolAcceptSessionJoiner(SessionPortsessionPort,constchar*joiner,constSessionOptsopts);virtualvoidSessionJoined(SessionPortsessionPort,SessionIdid,constchar*joiner);virtualvoidNameOwnerChanged(constchar*busName,constchar*previousOwner,constchar*newOwner);};

心想,随着你的代码量更加大,落成的效果尤为多,在五个.c文件中,你定义了大宗的函数,那些函数完毕着分裂功用,

MyBusObject.h

何况都是混合在同步,你会不会深感看着温馨写的代码以为自身的心血也乱了?在这处小编找到了贰个方法来将次第变得进一步模块化,

classMyBusObject:publicBusObject{public:MyBusObject(BusAttachmentbus,constchar*path);QStatusSendCmdSignal(constchar*cmd);voidChatSignalHandler(constInterfaceDescription::Member*member,constchar*srcPath,ajn::Messagemsg);voidCat(constInterfaceDescription::Member*member,ajn::Messagemsg);private:constInterfaceDescription::Member*chatSignalMember;constInterfaceDescription::Member*commandSendedSignalMember;};

越来越有系统。总的做法分以下几步:

上述五个公文只是个示范,然后在对应cc文件中定义各样艺术就可以。在主程序中,就足以如此写:

1.将功用相近的自定义函数的宣示写在一个.h文书中(比如:Math.h)

QStatusstatus=ER_OK;servicebus=newServiceBusAttachment("myapp",true);servicebus-createInterface();servicebus-RegisterBusListener(busListener);servicebus-Start();MyBusObjectmyobj(*servicebus,objPath);s_obj=myobj;servicebus-RegisterBusObject(*s_obj);servicebus-Connect();constTransportMaskSERVICE_TRANSPORT_TYPE=TRANSPORT_ANY;servicebus-advertiseService(SERVICE_TRANSPORT_TYPE,busListener);

2.将这么些函数的切实可行贯彻写在.c文件中(例如:Math.c 注意要满含头文件 #include "Math.h" )

这么的模块化布署是或不是好多了吧?能够尝尝把basic,chat等主次都写成这种样式哦。

3.在您的主程序中蕴藏头文件(#include "Math.h"),在主程序就足以调用那几个自定义函数了

咱俩后天想要C函数模块,该模块提供数学计算的效果与利益(比如加、减、乘、除等计算成效),自定义函数写在Math.h中,函数的

完成写在Math.c中,在主函数main.c中调用那一个函数进行测量试验。

下一篇:没有了
友情链接: 网站地图
Copyright © 2015-2019 http://www.zen-40.com. mgm美高梅有限公司 版权所有