qq_41851997 2023-08-16 16:01 采纳率: 60%
浏览 2
已结题

如何抉择函数中是否使用变量

c语言编写优化:
请问 如果我在一个函数中定义一个变量c,那么代码的行数可以减少2行甚至更多。那么定义这个变量更好还是不定义更好。
请从运行效率,内存占用,编译大小等方面综合考虑,到底以什么界限来确定用什么方式更优
例程:

int getUserData(int *data)
{
    //使用变量代码
    int ret = -1;
    mutex.lock();   //加锁
    if(globleList.isEmpty)  //如果列表不为空
    {
        *data =  globleList.takeFirst();
        ret = 0;
    }
    mutex.unlock();   //解锁
    return ret;
}


int getUserData(int *data)
{
    //不使用变量代码
    mutex.lock();   //加锁
    if(globleList.isEmpty)  //如果列表不为空
    {
        *data =  globleList.takeFirst();
        mutex.unlock();   //解锁
        return 0;
    }
    else
    {
        mutex.unlock();   //解锁
        return -1;
    }
}
  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-16 18:15
    关注

    【以下回答由 GPT 生成】

    根据问题所提供的代码示例,这是一个从全局列表中获取数据的函数。该函数使用了一个变量 ret来记录函数执行结果。下面是我对每个方面的解释和解决方案:

    1. 运行效率: 使用变量的代码可以减少函数执行的代码行数,这可能会使代码执行更快。但是,变量的使用也可能引入额外的开销,比如内存读写。因此,你需要权衡减少的代码行数和潜在的开销,来决定使用变量是否更好。

    在这个特定的示例中,使用变量是合理的,因为它可以减少重复的解锁代码行数。

    2. 内存占用: 使用变量可能会增加函数的内存占用。变量需要在内存中分配空间,并且在函数执行完成后可能会占用一段时间的内存。如果内存占用是你关注的问题,那么你可能需要比较使用变量和不使用变量时的内存占用量。

    在这个特定的示例中,使用变量并不会增加太多的额外内存占用,因为 ret 只是一个整型变量。

    3. 编译大小: 使用变量的代码可能会增加编译后的可执行文件的大小。如果你关心编译后的文件大小,那么你可以比较使用变量和不使用变量时的编译后文件的大小。

    在这个特定的示例中,使用变量也不会显著增加编译后的文件大小。

    综上所述,使用变量的代码示例更好。它通过减少重复的解锁代码行数提高了运行效率,并且并不会显著增加内存占用或编译后文件大小。因此,我建议使用带有变量的代码示例。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月31日
  • 已采纳回答 8月23日
  • 创建了问题 8月16日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表