中易网

C语言临时变量申请是否占堆栈资源

答案:3  悬赏:70  
解决时间 2021-03-06 02:58
代码1
int getvalue()
{
return 0;
}
void test1()
{
int i = getvalue();
if( i == 0 )
{
printf("test1\n");
}
}
代码2
int getvalue()
{
return 0;
}
void test1()
{
if( 0 == getvalue() )
{
printf("test1\n");
}
}
提问:代码1和代码2, 哪种方式更省资源?哪种方式更符合编码规范?
最佳答案
编码规范并不是一成不变的,不同的公司、团队会有各自的要求。
两段代码主要差异体现在:
1、if语句条件表达式的写法
一般来说,如果布尔表达式是与一个常量进行比较时,把常值放在前面更清楚,且可以避免==写成赋值号的错误。 基于此,代码2较好。
2、是否额外使用临时变量
在执行函数时,函数内局部变量的存储单元都在栈上创建。 使用临时变量,肯定会额外占用系统资源。但是,当数量不多时,程序的清晰性比资源的占用更重要。
全部回答
这个要看编译器的优化了,两种写法都一样,分不出上下 从编写的规范上看,第一种可能比较好一点
指针就是指地址;数组的地址在定义变量时就已经给定了,不能再变化,其大小也是定了的,数组可以通过下表访问,这是数组的方便之处,但是,数组可能存在越界访问和浪费空间的问题;结构体就是将以个项目的所有的属性放在一起,这样方便操作;队列有先进先出的原则;堆栈是存储空间的概念,c语言中的局部变量就是保存在栈空间里的,而用malloc分配的空间是在堆里开辟的;变量的概念就太广了,可以有多种类型的变量。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
香河有多少个初高中学校
锅状元旋转小火锅涮毛肚怎么去啊,有知道地址
在一个完全有效的市场上,两只股票间的相关系
切开不用刀打一字
别人包大巴车去结婚,大巴车在去的路上翻车了
鑫盛房屋金融超市怎么去啊,有知道地址的么
凡悦健身艺术中心怎么去啊,有知道地址的么
我想谈恋爱又不想谈恋爱怎么办
银行的市场营销岗和专业操作岗
狮子座男水瓶座女会有什么样的结果?
求《辐射岛》安卓无限资源版!!
coser援助是什么意思
应度庵地址有知道的么?有点事想过去
天龙八部黄日华版梅剑的扮演者是谁
2010103期双色球6+1我的号是:03 06 11 16 25
推荐资讯
2016年开始英语会考试卷是全国统一出卷吗
数控车床怎么车圆弧牙顶和圆弧牙底的螺纹
现在上海还有《申报》吗
上院我想知道这个在什么地方
良山清真牛羊火锅城地址在什么地方,想过去办
数据库 筛选出字段A中包含 某一序列中任意一
深圳市航空电子产业园这个地址在什么地方,我
五年级数学.梯形面积练习课
铬铁头复活膏有用吗?
莱阳市团旺中心小学地址在什么地方,想过去办
被狗咬了,打了血清和疫苗,现在开学了,学校
桦南县农村信用合作联社土龙山信用社地址在哪
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?