您的位置:首页 > 其它

[置顶] 使用const定义常量,inline定义小型函数

2016-01-22 11:28 417 查看
使用 const 而不是 #define 来定义常量

C使用预处理器来创建常量的符号名称:

#define MAX_LENGTH 100


而C++最好在变量申明使用限定符 const:

const int MAX_LENGTH = 100;


使用const的方法有很多优越性。首先,显示指定类型。使用#define时,必须在数字后面加各种后缀来指出除 char、int 或 double 之外的类型。例如,使用100L来表明 long 类型,使用3.14F 来表示 float 类型,更重要的是 const 方法可以很方便地用于符合类型,如下例所示:

const int base_vals[5] = {1000,2000,3500,6000,10000};
const string ans[3] = {"yes","no","maybe"};


使用 inline 而不是 #define 来定义小型函数

在创建类似于内联函数的东西时,传统的 C 语言方式是使用一个 #define 宏定义:

#define Cube(x) x*x*x


这将导致文本置换,将 x 替换为 Cube() 的参数:

y = Cube(x);
y = Cube(x + z++);


由于预处理器使用文本置换,而不是真正地传递参数,因此,使用这种宏可能导致意外的、错误的结果。要避免这种错误,可以在宏中使用大量的圆括号来确保正确的运行顺序:

#define Cube(x) ((x)*(x)*(x))


但即使是这样做,也无法处理诸如 z++ 等值的情况。

C++ 方法是使用关键字 inline 来标识内联函数,这种方法更可靠,因为他采用的是真正的参数传递。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: