c - 请问头文件常量的定义?
本文介绍了c - 请问头文件常量的定义?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
假如我在程序头文件的位置写上这两句代码中的一句
#define num 5
const int num=5;
请问有什么区别吗?都是不会变化的常量吗
解决方案
这可不一样,通俗的说(更多请去查看编译原理,以下观点只是适合初学者)
#define 在编译时,会将源代码按照define定义的值,全部替换掉,然后编译成相关机器码(具体实现肯定会更复杂,这只是简单地说)
const 定义的东西(你可以理解为变量吧),还是需要在运行时占用堆栈区的
所以,你可以define任何东西
#define Q_DECL_IMPORT __declspec(dllimport)
class Q_DECL_IMPORT Abc {}
//此句在编译时会变成 class __declspec(dllimport) Abc {}
#define max(a,b) (((a) > (b)) ? (a) : (b))
int i = max(123,38);
//此句在编译时会变成 int i = 123 > 38 ? 123 : 38;
这篇关于c - 请问头文件常量的定义?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文