C语言常见忽视问题之 if、return、“:1”

本文探讨了C语言中if条件语句的正确使用,强调不能使用赋值操作符`=`,并解释了为何使用`if(x=2){}

首先上代码:

#include<stdio.h>

int add(int a,int b);
int main();

int add(int a,int b)
{   int m;
	m=a+b;
	printf("the function result is %d",m);
	return m;
}
int main()
{
	int x=3; int y=5;
	if(2==x)
	{
	 printf("the function is not operated");
	 return 1;
	}
	add(x,y);	
	return 0;
}

if

通常为作为条件判断进入的语句,但不可用 =,因为会进行赋值;
通常采用同

if(判断值==变量){}

若将代码 main 函数中 if条件语句 写为 if(x=2){} 则会永远判断为真,一直打印 "the function is not operated"这是 因为if C语言再转译为汇编语言时是 与 0 进行判断,所以在 若采用 x=数值 除0以外 进行判断都会判断为真,进入到if的语句中
所以在使用if 进行条件判断时 最好采用if(判断值==变量){}的方式保证万无一失;

return

return 常用作函数的返回值,在一个大段嵌套语句中,若在子函数或程序遇到 return 可直接进行返回,不在运行下方其他函数;用上段代码举例,若判断 if(2==x){}为真则进入语句,通过return返回,后面的add()函数不在执行;在一个大的工程文件,通常用这种方式进行程序的跳出。

“:1”

":"冒号在C语言中是位域的意思,所以通常在表示声明采用如下结构表示所占用的位数:

uint8 f_bit           :1;     //占用1个字节
uint8 f_bit2       :4;     // 占用4个字节
 uint8 f_bit3           :0; //占用0个字节

除法使用移位进行效率更高

归根结底当求平均时使用的除法,根据二进制的特点可以进行右移;如除以16 等价于 右移4位(2^4=16)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值