char a = 0x10 있을때
1000 0000
여기서 임의의 비트를 세트 시킬려면
예를 들면 3번째 비트를 on (0번째 비트 ~ 7번째 비트)
1000 1000
1. a |= 0x08
2. a |= (0x01<<3)
둘 중에 누가 더 빠름??
char a = 0x10 있을때
1000 0000
여기서 임의의 비트를 세트 시킬려면
예를 들면 3번째 비트를 on (0번째 비트 ~ 7번째 비트)
1000 1000
1. a |= 0x08
2. a |= (0x01<<3)
둘 중에 누가 더 빠름??
constant folding운 기본이라 보통 같음
저건 뭐가 더 빠른가 따질필요 있냐? n번째가 중요하면 2번으로 그냥 하는게 제일 낫지. 코드의 의미도 파악이 쉽고. n번째라는건 변수를 쓰겠다는 거니까 상수화는 무리인거고, 그렇다면 2번이 연산단계가 늘어나는 만큼 당연히 더 느려지겠지. 1번의 0x08을 매크로 상수화 해서 쓸수도 있겠지만, 변수가 필요한 상황이면 애초에 저걸 그대로 쓸 일은 없어. 전체적인 코드가 없으면 저거 속도를 따지는건 사실상 무의미한거. 변수를 안 쓸수가 없을텐데, 어떻게 쓰는지도 안보고 어떻게 따져.