C 特有语法糖
本页只介绍 C SDK 独有的便捷写法。它们 不是新功能,只是把已有入口包装成更短的宏。
可选,不用不影响标准入口 ——
PnSServiceStart/PnSServiceStop、PnSServiceReadInt16/PnSServiceWriteInt16照常用。语法糖只是另一种写法。
头文件 ——
#include "pns.h"即可,不必再单独 includepns_sugar.h。
PNS_TRY / PNS_START_OR_RETURN
把返回码检查、启停写成短宏。须在返回 pns_result_t 的函数里用。
| 写法 | 调用 |
|---|---|
| 标准 API | if (rc != PNS_OK) return rc; |
| 语法糖 | PNS_TRY(rc); |
| 标准 API | rc = 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。不关会话 |