내 코드에서 핫스팟의 일부인 1 줄의 inline
함수가 있습니다. 이것을 매크로로 바꾸는 것이 유익한 지 알고 싶습니다. 함수로 쓰면 부작용에 대해 걱정할 필요가 없었습니다. 하지만 부작용없이 매크로를 작성하려면 어떻게해야합니까?인라인 함수를 매크로로 변환
#define FLAG1_BIT 4
struct node
{
unsigned long key;
struct node* child[K]; //format <address,flag1,flag2,flag3>
};
static inline bool isFlag1Set(struct node* p)
{
return ((uintptr_t) p & FLAG1_BIT) != 0;
}
어떤 부작용이 있습니까? 이 코드는 아무 것도 수정하지 않는 것 같습니다. – murgatroid99
'((uintptr_t) p & FLAG1_BIT)! = 0' 표현은 부작용이 없습니다. –
아마도'return (struct node *) ((uintptr_t) p | FLAG1_BIT); '플래그를 설정 한 함수를 게시 했어야합니다. – arunmoezhi