C语言中常量定义和宏定义有什么区别
区别大了个去了.宏定义是预处理命令.#defien A 3执行后, 预处理器把会正文所有全字匹配的A, 全部替换为3, 那么, 最后的代码进入编译器的代码, 1 + A, 是变成1 + 3的.而const int a = 3;这个是不在预处理器的管理范围之内 ,这个就是编译器的工作了, 有些编译器不会为它分配空间, 直接把它加入符号表中, 也就是说, 常量不再是0123456789这10个数, 而是0123456789a这11个数, 那么a就是被定义成3了, 所以符号表里的内容是01234567893.而有些 编译器会为它分配空间.你不知道它们的区别, 说明你学宏的时候, 并不知道宏的原理.
c语言中 #include IBM-PC是正确的宏定义吗,为什么
我的知识体系,c语言中 #include IBM-PC不是正确的宏定义。
定义宏需要使用#define吧,IBM_PC才是合法的字段名,中间减号也是错误的。
#define IBM_PC <stdio.h>
#include IBM_PC
上面2句等价于:
#include <conio.h>
#define IBM_PC
希望可以帮助你哦~