XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_check

运行时检查宏。 更多...

xf_check 的协作图:

宏定义

#define XF_CHECK_ACTION_RETURN(condition, retval, action)
 检查条件(condition),成立则执行(action),并 return (retval).
 
#define XF_CHECK_ACTION_GOTO(condition, label, action)
 检查条件(condition),成立则执行(action),并跳转到(label).
 
#define XF_CHECK(condition, retval, tag, format, ...)
 xfusion 检查宏(条件 成立 时则输出日志后返回)。
 
#define XF_CHECK_GOTO(condition, label, tag, format, ...)
 xfusion 检查宏(条件 成立 时则输出日志后跳转)。
 
#define XF_ASSERT(condition, retval, tag, format, ...)
 xfusion 断言宏(条件 不成立 时则输出日志后返回)。
 
#define XF_ASSERT_GOTO(condition, label, tag, format, ...)
 xfusion 断言宏(条件 不成立 时则输出日志后跳转)。
 
#define XF_ERROR_CHECK(expression)
 xfusion 错误检查宏(表达式 不等于 XF_OK 时则调用 XF_CHECK_ERROR_HANDLER)。
 

XF_CHECK_NO_ACTION

XF_RETURN_VOID、XF_ACTION_NO 是在 XF_CHECK 无需返回的情况使用:

XF_CHECK(timer == NULL , XF_RETURN_VOID, TAG, "timer == NULL");
XF_CHECK_ACTION_RETURN(port_in == NULL, port_out, XF_ACTION_NO);
#define XF_RETURN_VOID
Definition xf_check.h:47
#define XF_CHECK(condition, retval, tag, format,...)
xfusion 检查宏(条件 成立 时则输出日志后返回)。
Definition xf_check.h:112
#define XF_CHECK_ACTION_RETURN(condition, retval, action)
检查条件(condition),成立则执行(action),并 return (retval).
Definition xf_check.h:69
#define XF_ACTION_NO
Definition xf_check.h:48
#define TAG
Definition xf_main.c:24
static xf_osal_timer_t timer
Definition xf_main.c:41
#define XF_RETURN_VOID
 
#define XF_ACTION_NO
 

详细描述

运行时检查宏。

宏定义说明

◆ XF_RETURN_VOID

◆ XF_ACTION_NO

#define XF_ACTION_NO

在文件 xf_check.h48 行定义.

◆ XF_CHECK_ACTION_RETURN

#define XF_CHECK_ACTION_RETURN (   condition,
  retval,
  action 
)
值:
do { \
if (condition) { \
do {action} while (0); \
return retval; \
} \
} while (0)

检查条件(condition),成立则执行(action),并 return (retval).

参数
condition判断条件。
retval条件成立时的返回值。
action条件成立时的执行的动作。
返回
retval 等同于参数 retval,可以为空。

在文件 xf_check.h69 行定义.

◆ XF_CHECK_ACTION_GOTO

#define XF_CHECK_ACTION_GOTO (   condition,
  label,
  action 
)
值:
do { \
if (condition) { \
do {action} while (0); \
goto label; \
} \
} while (0)

检查条件(condition),成立则执行(action),并跳转到(label).

参数
condition判断条件。
label条件成立时,跳转到的标签。
action条件成立时的执行的动作。

在文件 xf_check.h88 行定义.

◆ XF_CHECK

#define XF_CHECK (   condition,
  retval,
  tag,
  format,
  ... 
)
值:
!!(condition), retval, \
XF_LOGE((tag), format, ##__VA_ARGS__); \
)
#define XF_LOGE(tag, format,...)

xfusion 检查宏(条件 成立 时则输出日志后返回)。

  • XF_CHECK*: 条件 成立 时执行。
参数
condition判断条件。
retval条件 成立 时的返回值。
tag日志标签。
format用户格式化字符串。
...可变参数。
返回
retval 等同于参数 retval,可以为空。
示例
examples/storage/fal/fal_flashdb/main/xf_main.c, examples/wireless/ble/sample_gatt_client/main/xf_main.c, examples/wireless/ble/sample_gatt_server/main/xf_main.c, examples/wireless/sle/sample_ssap_client/main/xf_main.c , 以及 examples/wireless/sle/sample_ssap_server/main/xf_main.c.

在文件 xf_check.h112 行定义.

◆ XF_CHECK_GOTO

#define XF_CHECK_GOTO (   condition,
  label,
  tag,
  format,
  ... 
)
值:
!!(condition), label, \
XF_LOGE((tag), format, ##__VA_ARGS__); \
)
#define XF_CHECK_ACTION_GOTO(condition, label, action)
检查条件(condition),成立则执行(action),并跳转到(label).
Definition xf_check.h:88

xfusion 检查宏(条件 成立 时则输出日志后跳转)。

参数
condition判断条件。
label条件 成立 时,跳转到的标签。
tag日志标签。
format用户格式化字符串。
...可变参数。

在文件 xf_check.h127 行定义.

◆ XF_ASSERT

#define XF_ASSERT (   condition,
  retval,
  tag,
  format,
  ... 
)
值:
!(condition), retval, \
XF_LOGE((tag), format, ##__VA_ARGS__); \
)

xfusion 断言宏(条件 不成立 时则输出日志后返回)。

  • XF_ASSERT*: 条件 不成立 时执行。
参数
condition判断条件。
retval条件 不成立 时的返回值。
tag日志标签。
format用户格式化字符串。
...可变参数。
返回
retval 等同于参数 retval,可以为空。

在文件 xf_check.h150 行定义.

◆ XF_ASSERT_GOTO

#define XF_ASSERT_GOTO (   condition,
  label,
  tag,
  format,
  ... 
)
值:
!(condition), label, \
XF_LOGE((tag), format, ##__VA_ARGS__); \
)

xfusion 断言宏(条件 不成立 时则输出日志后跳转)。

参数
condition判断条件。
label条件 不成立 时,跳转到的标签。
tag日志标签。
format用户格式化字符串。
...可变参数。

在文件 xf_check.h165 行定义.

◆ XF_ERROR_CHECK

#define XF_ERROR_CHECK (   expression)
值:
do { \
xf_err_t __err = (expression); \
if (unlikely((__err) != XF_OK)) { \
XF_LOGE("xf_check", "An error occurred: " XSTR(expression != XF_OK)); \
} \
} while (0)
#define unlikely(x)
分支预测,优化条件为 假 的可能性更大的情况。
Definition xf_attr.h:113
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
Definition xf_err.h:69
@ XF_OK
Definition xf_err.h:43
#define XSTR(x)
参数字符串化。 见:https://gcc.gnu.org/onlinedocs/gcc-3.4.3/cpp/Stringification.html
Definition xf_predef.h:110
#define XF_CHECK_ERROR_HANDLER
XF_ERROR_CHECK 的结果。如果不对接则为无限死循环。

xfusion 错误检查宏(表达式 不等于 XF_OK 时则调用 XF_CHECK_ERROR_HANDLER)。

参数
expression返回值类型为 xf_err_t 的表达式。
如果 expression 不为 XF_OK, 则调用 XF_CHECK_ERROR_HANDLER.

在文件 xf_check.h182 行定义.