嗨,以下是參考寫法
unsigned char x; //0<=x<=255bool result;... result=(x>=64 && x <=128)? true:false; //包含頭尾 result=(x>64 && x <128)? true:false; //不包含頭尾
result=(x>64 && x <128)? true:false; //不包含頭尾
另外函數的寫法如下,您在看您的需求,另外要使用bool型態需在檔案頭加上#include <stdbool.h>
bool check(unsigned char x){ return (x>=64 && x <=128)? true:false;}
用if为什么不行?
就算你用条件运算符,在生成机械码时还是一样的,并不会比使用if的代码量少多少。
从汇编的角度,要减少代码量或是提高运行速度,还是要用与、或之类的位运算。
if(64<x<128) 你是这么写的?
C语言中没有连续比较大小的运行,这个运算是要分成前后两部分,第一部分是 64 <x ,这个运行的值是成立或不成立,也就是有两个位,即x=0或x=1.之后,再就是if(1<128) 或if(0<128),即,总是成立的。
上面的写法也就是if((64<x)<1128)了。
三目运算的嵌套
u8 x=25,Y=1,N=0,K; K=(x>=64)?(x<=128?Y:N):N;