将以下函数定义为宏函数或内联
函数会更好吗?还是使用普通函数并信任编译器更好,以保持(在我看来)更好的可读性?
typedef unsigned char byte;
void set_size_mark(byte size_mark, byte *ptr)
{
*ptr += size_mark << 1;
}
byte get_size_mark(byte *ptr)
{
return *ptr >> 1;
}
最佳答案
你应该内联那些。无论如何,编译器几乎肯定会自己执行此操作。
代码是一行,不太可能造成代码膨胀,因此内联可能更有效。编译器知道这一点,但是,如果这是不正确的,我认为编译器可以忽略 inline
关键字。
一般来说,您应该避免使用宏 - 它们会导致许多意想不到的问题,并且通常与内联函数一样糟糕,而且更难使用。宏有用途,但这绝对不是一个合适的地方。
关于c - 我们应该使用宏、内联函数还是只使用普通函数并信任编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27080428/