c语言--提高篇(习惯、风格)

1、 写法1:if('A'==a) { a++; }
写法2; if(a=='A') { a++;}
写法1比较好,若将“==”误写成“=”,编译器不允许对常数赋值就可检查到错误。
2、写法1:for(i=0;i<9;i++){ X=i+Y+J*7; }
写法2:

S=Y+J*7;
for(i=0;i<9;i++){
	X=i+S;
}

写法2比较好,将部分加法放到了循环体外,提高了效率。
3、

unsigned int a=0xFFFFFFF7;
	 unsigned char i=(unsigned char)a;
	 char* b=(char)&a;
	 printf("%08x,%08x",i,*b);         //数据输出的最小位数为8位,% x以十六进制小写输出

unsigned int 变量赋值给unsigned char变量时会发生字节截断(3位和高于3位的将被程序自动抛弃)。
答案:000000f7, fffffff7。

4、各个平台下基本数据类型的字节数
16位平台

char 1个字节8位

short 2个字节16位

int 2个字节16位

long 4个字节32位

指针 2个字节

32位平台

char 1个字节8位

short 2个字节16位

int 4个字节32位

long 4个字节

long long 8个字节

指针 4个字节

64位平台

char 1个字节

short 2个字节

int 4个字节

long 8个字节(区别)

long long 8个字节

指针 8个字节(区别)

5.unsigned char a=0xA5;
unsigned char b=~a>>4+1;
printf(“b=%d\n”,b);
知识点:类型转换,计算第二个表达式时,编译器会先把a和4的值转换为int型后再运算,当计算结果出来后再把结果转换为char型赋值给b.
运算符优先级:~ 优先于 >>
6. a , b交换
方法1:
a=a+b;
b=a-b;
a=a-b;
缺点:数值较大时,可能出现超界的问题。
方法2:
a=a^b;
b=a^b;
a=a^b;
优点:不会出现超界的问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值