全站数据
8 4 2 0 5 8 1

C语言中常量定义和宏定义有什么区别

心理咨询师小雅 | 简单学习,快乐成才!         
问题更新日期:2024-10-11 15:38:41

问题描述

C语言中常量定义和宏定义有什么区别求高手给解答
精选答案
最佳答案

区别大了个去了.宏定义是预处理命令.#defien A 3执行后, 预处理器把会正文所有全字匹配的A, 全部替换为3, 那么, 最后的代码进入编译器的代码, 1 + A, 是变成1 + 3的.而const int a = 3;这个是不在预处理器的管理范围之内 ,这个就是编译器的工作了, 有些编译器不会为它分配空间, 直接把它加入符号表中, 也就是说, 常量不再是0123456789这10个数, 而是0123456789a这11个数, 那么a就是被定义成3了, 所以符号表里的内容是01234567893.而有些 编译器会为它分配空间.你不知道它们的区别, 说明你学宏的时候, 并不知道宏的原理.