コード内のホットスポットの一部である 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;
}