MaaXYZ / MaaFramework

基于图像识别的自动化黑盒测试框架 | An automation black-box testing framework based on image recognition
GNU Lesser General Public License v3.0
1.09k stars 129 forks source link

[RFC] 函数及函数指针声明中指针类型参数的文档编写标准 #269

Closed moomiji closed 2 weeks ago

moomiji commented 3 weeks ago

实际为引用行为的指针 | 指向数组的指针

例外

示例

  1. 标注必须在 @param[<dir>] 中进行。相关文档
  2. 指向数组的指针必须在参数中明确标出 array 关键字,即 /**< array */ ,避免开发者误解为引用。
    /**
     * @param[in] value The option value.
     */
    MAA_FRAMEWORK_API MaaBool
        MaaSetGlobalOption(MaaGlobalOption key, MaaOptionValue value /**< Maybe a byte array */, MaaOptionValueSize val_size);

    /**
     * @param[out] node_id_list
     * @param[in, out] node_id_list_size
     */
    MAA_FRAMEWORK_API MaaBool MaaQueryTaskDetail(
        MaaTaskId task_id,
        /* out */ MaaStringBufferHandle entry,
        /* out */ MaaNodeId* node_id_list /**< array */,
        /* in & out */ MaaSize* node_id_list_size);

错误示例

对 Binding(被调用方) 而言, 需要将图片数据写入 buffer 传回 Maa(调用方)。

但实际数据为 MaaImageBufferHandle,由 Maa(调用方)传入 Binding(被调用方)。

故 buffer 参数的文档应使用 [in] 属性而不是 [out] 属性,指示 Binding 不可修改 MaaImageBufferHandle。

当然,由于 MaaImageBufferHandle 实际上就是一个 Handle 作为数据在传来传去,并不属于 实际为引用行为的指针,不需要在文档中明确标注。

上面的 MaaStringBufferHandle 也不属于 实际为引用行为的指针,因此 @param[out] 属于多余标注。

MistEO commented 3 weeks ago

快点端上来吧.jpg