清风致影 发表于 2023-7-13 16:42

单片机的C语言里面 可以改变宏定义内容吗?

c文件里面我定义了一个宏定义比如
#define AAA   0

但我想在函数里面更改这个AAA的值为1,比如
main()
{
//更改AAA为1

}
该如何实现?

jack821119 发表于 2023-7-13 17:30

#define AAA 0
#undef AAA
#define AAA 1

delin17 发表于 2023-7-13 21:22

楼上的答案,是程序语言顺序上后面的AAA就是1了,从程序运行顺序上,要注意。可能不是你要的值了。

gaoyang9992006 发表于 2023-7-13 22:29

如果真需要在程序里改变,那不如定义成变量。

gaoyang9992006 发表于 2023-7-13 22:30

宏不会在程序里改变,只会在编译前进行汇编时候改变。所以你只能在改变前用新的宏替换,如果是在程序里不可预期的改变,那只能定义成变量。

zlf1208 发表于 2023-7-14 08:18

改了宏定义,那么所有引用这个宏定义的地方都被改变了,可能有些你不知道的地方也一起被改了,所以这样做不是很安全,建议你另外写一个宏定义,以消除隐患
页: [1]
查看完整版本: 单片机的C语言里面 可以改变宏定义内容吗?