跳到主要内容

C 特有语法糖

本页只介绍 C SDK 独有的便捷写法。它们 不是新功能,只是把已有入口包装成更短的宏。

可选,不用不影响标准入口 —— PnSServiceStart / PnSServiceStopPnSServiceReadInt16 / PnSServiceWriteInt16 照常用。语法糖只是另一种写法。

头文件 —— #include "pns.h" 即可,不必再单独 include pns_sugar.h


PNS_TRY / PNS_START_OR_RETURN

把返回码检查、启停写成短宏。须在返回 pns_result_t 的函数里用。

写法调用
标准 APIif (rc != PNS_OK) return rc;
语法糖PNS_TRY(rc);
标准 APIrc = PnSServiceStart(session); if (rc != PNS_OK) return rc;
语法糖PNS_START_OR_RETURN(session);
#include "pns.h"

pns_result_t run(void)
{
pns_service_handle_t session = NULL;
pns_result_t rc;

rc = PnSServiceConnectRealtime(&session);
PNS_TRY(rc);

PNS_START_OR_RETURN(session);

/* 写 Q、读 I */

PnSServiceStop(session);
PnSServiceClose(session);
return PNS_OK;
}

PNS_START_OR_RETURN 失败即 return。不关会话,结束时自己调 PnSServiceStop / PnSServiceClose

何时用

  • 短函数、错了就返回:用 PNS_TRY / PNS_START_OR_RETURN
  • 长时间一直跑:直接调 PnSServiceStart / PnSServiceStop,不要套宏。

能力清单

分组内容
返回码PNS_TRY(rc):失败即 return 该错误码
启停PNS_START_OR_RETURN(session)PnSServiceStart,失败即 return。不关会话