1、const與#define
1、1普通常量定義
#define CHANNEL_NUM 10 //宏定義
const int channel_num = 10; //常量定義
const char * const channelName = "GPRS"; //定義一個指向常量的常量指針
1、2類常量定義
class Channel
{
public:
int GetChannelNum() const
{
return m_num;
}
private:
static const int m_num = 10;
int m_channelPool[m_num];
};
const int Channel::m_num;
2、enum與#define
3、inline 與 #define
#define Max(a, b) (a) > (b) ? (a) : (b) //宏函數
inline int GetMax(int a, int b) //內聯函數
{
return a > b ? a : b;
}
int a = 10;
int b = 5;
//int max = Max(a++, 5);
int max = GetMax(a++, b);
cout<<"after Max a :"<<a<<" Max:"<<max<<endl;
查看結果,發現宏函數的值不是意料到的。