代码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, 哪种方式更省资源?哪种方式更符合编码规范?
C语言临时变量申请是否占堆栈资源
答案:3 悬赏:70
解决时间 2021-03-06 02:58
- 提问者网友:刪除丶後
- 2021-03-05 23:42
最佳答案
- 二级知识专家网友:短发女王川岛琦
- 2021-03-06 00:10
编码规范并不是一成不变的,不同的公司、团队会有各自的要求。
两段代码主要差异体现在:
1、if语句条件表达式的写法
一般来说,如果布尔表达式是与一个常量进行比较时,把常值放在前面更清楚,且可以避免==写成赋值号的错误。 基于此,代码2较好。
2、是否额外使用临时变量
在执行函数时,函数内局部变量的存储单元都在栈上创建。 使用临时变量,肯定会额外占用系统资源。但是,当数量不多时,程序的清晰性比资源的占用更重要。
两段代码主要差异体现在:
1、if语句条件表达式的写法
一般来说,如果布尔表达式是与一个常量进行比较时,把常值放在前面更清楚,且可以避免==写成赋值号的错误。 基于此,代码2较好。
2、是否额外使用临时变量
在执行函数时,函数内局部变量的存储单元都在栈上创建。 使用临时变量,肯定会额外占用系统资源。但是,当数量不多时,程序的清晰性比资源的占用更重要。
全部回答
- 1楼网友:初心未变
- 2021-03-06 01:34
这个要看编译器的优化了,两种写法都一样,分不出上下
从编写的规范上看,第一种可能比较好一点
- 2楼网友:浪女动了心
- 2021-03-06 00:46
指针就是指地址;数组的地址在定义变量时就已经给定了,不能再变化,其大小也是定了的,数组可以通过下表访问,这是数组的方便之处,但是,数组可能存在越界访问和浪费空间的问题;结构体就是将以个项目的所有的属性放在一起,这样方便操作;队列有先进先出的原则;堆栈是存储空间的概念,c语言中的局部变量就是保存在栈空间里的,而用malloc分配的空间是在堆里开辟的;变量的概念就太广了,可以有多种类型的变量。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯