永发信息网

单片机中的宏定义

答案:3  悬赏:80  手机版
解决时间 2021-03-01 08:37
  • 提问者网友:一抹荒凉废墟
  • 2021-02-28 15:25
在avr单片机中宏定义:
#define MAX 32768//无报警
#define MAX 16384*2//警告:integer overflow in expression
疑惑:同一个数:用表达式就会报警,直接写数就不报警?
最佳答案
  • 五星知识达人网友:爱难随人意
  • 2021-02-28 15:45
我试过ATmega16的可以通过(codevisionavr环境)、看你现在用哪款AVR单片机,你这里是乘法乘的过程出现了溢出
全部回答
  • 1楼网友:北方的南先生
  • 2021-02-28 17:17
怎么可能呢
  • 2楼网友:迟山
  • 2021-02-28 16:35
跟单片机没关系,这是c语言的东西 ------------- #是c语言里的预处理命令,编译器在编译代码之前,会预先处理这部分内容,#define 就是宏定义,对于 #define 的内容是怎样处理的呢?看下面的代码 #define max 128 void main() { int max=max; } 编译器处理时,会直接把 int max=max;替换成 int max=128; 注意,是文本替换,而不是变量赋值,程序中自始至终都不存在max这个变量,相当于是用“查找-替换”功能一样,查找 max ,替换成 128 。 如果程序中有多个地方要用到同一个值、代码块,我们都可以定义成一个宏,如果这些值或代码块要改动,只需改下宏定义就行了,不用从代码中一处一处的改,很方便,而且不会因为漏掉某个地方而导致程序出错。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯