You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向接收uint8_t指针的函数传递字符串字面量?

解决方法:向uint8_t*参数的函数传递字符串字面量

现有C函数:

void outTxData(uint8_t *outString)
{
//执行相关操作
}

想要直接通过outTxData("HELLO")传递字符串字面量,因类型不匹配无法实现,以下是几种最简单的解决方式:

  • 直接强制类型转换(最简便)
    调用时将字符串字面量强制转换为uint8_t*类型,直接匹配函数参数:

    outTxData((uint8_t*)"HELLO");
    

    注意:如果函数内部会修改传入的字符串,这种方式会触发未定义行为(字符串字面量存储在只读内存),仅适用于函数仅读取数据的场景。

  • 修改函数参数为const uint8_t(更安全)*
    调整函数参数类型,明确标记指针指向的内容为只读,避免误修改风险:

    void outTxData(const uint8_t *outString)
    {
    //执行相关操作
    }
    

    调用时用强制转换保证类型匹配:

    outTxData((const uint8_t*)"HELLO");
    
  • 临时数组中转(需修改字符串时用)
    如果函数内部需要修改字符串内容,先把字面量复制到uint8_t数组中再传递:

    uint8_t txData[] = "HELLO";
    outTxData(txData);
    

内容的提问来源于stack exchange,提问作者ElecDesigner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:31:33