我是靠谱客的博主 时尚短靴,最近开发中收集的这篇文章主要介绍inline函数:避免代码膨胀,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

将类的析构函数定义为内联函数,可能导致潜在的代码膨胀。

假设CUser类的析构函数为内联函数

代码膨胀:

#include "stdafx.h"
#include "iostream.h"

int main(int argc, char* argv[])
{
    int nLevel = 0;                                //定义一个整型变量
    switch(nLevel)
    {
    case 0:                                    //分支判断
        {
            cout << "系统用户" << endl;            //输出信息
            return 0;                            //函数结束
        }
    case 1:                                     //分支判断
        {
            cout << "普通用户" << endl;            //输出信息
            return 0;                            //函数结束
        }
    default:                                    //默认情况
        return 0;                                //函数结束
    }
    return 0;
}

由于CUser类的析构函数是内联成员函数,因此上述代码在每一个return语句之前,析构函数均会被展开。因为return语句表示当前函数调用结束,User对象的生命周期也就结束了,自然调用其析构函数。

根据上述分析,main函数中switch语句的编写是非常不明智的,下面对其进行修改,将return语句替换为break语句。

改进switch语句提高代码质量:

#include "stdafx.h"
#include "iostream.h"

int main(int argc, char* argv[])
{
    int nLevel = 0;                                //定义一个整型变量
    switch(nLevel)
    {
    case 0:                                    //分支判断
        {
            cout << "系统用户" << endl;            //输出信息
            break;                            //switch语句结束
        }
    case 1:                                     //分支判断
        {
            cout << "普通用户" << endl;            //输出信息
            break;                            //switch语句结束
        }
    default:                                    //默认情况
        break;                                //switch语句结束
    }
    return 0;
}

在switch语句中通过将return语句替换为break语句,避免了不必要的代码扩展,精简了可执行文件代码。

最后

以上就是时尚短靴为你收集整理的inline函数:避免代码膨胀的全部内容,希望文章能够帮你解决inline函数:避免代码膨胀所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部