如何控制手动inline

purpose:

通过宏_INLINE_ON来控制函数是否inline, 非inline函数有利于在vtune等profiling工具中分析。

 

1. macros.h
#ifdef _WIN32
#define _INLINE_ON
#endif

 

#ifdef _INLINE_ON
#define _INLINE inline
#else // _INLINE_ON
#define _INLINE __attribute__((noinline)) // gcc 's attribute.
#endif

 

2. test.h

 

#include "macros.h"

#if defined(_INLINE_ON) || defined(_TEST_CPP)  // _defined(_TEST_CPP) 保证只会有一份definition

_INLINE func() {

    ...

}

_INLINE func2() {

    ...

}

#endif //if defined(_INLINE_ON) || defined(_TEST_CPP)

 

3. test.cpp

 

#define _TEST_CPP

#include "test.h"

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值