vb2002 发表于 2024-10-7 18:42:33

printf怎么打印 局部变量啊 | 全局变量

printf打印全局变量没问题

但是我要打印局部变量,老是报错。打印不了 图1
如果我想打印这个中断里面的 变量n 。
就会出现图2,同时串口和电脑的连接也会中断。串口扫描那个地方就空白了如图3







soma 发表于 2024-10-7 19:13:26

提示未定义,2个函数里面的局部变量不互通吧。

vb2002 发表于 2024-10-7 19:25:12

soma 发表于 2024-10-7 19:13
提示未定义,2个函数里面的局部变量不互通吧。

那如果我想打印局部变量,,要怎么弄哦?

王昱顺 发表于 2024-10-7 20:13:18

vb2002 发表于 2024-10-7 19:25
那如果我想打印局部变量,,要怎么弄哦?

改成全局变量,你这样没有变量传递手段,其他函数内是调用不到局部变量的

vb2002 发表于 2024-10-7 20:48:35

王昱顺 发表于 2024-10-7 20:13
改成全局变量,你这样没有变量传递手段,其他函数内是调用不到局部变量的 ...

ok以后要调用那个局部变量的话,只能先转成全局变量观察。

晓飛飛 发表于 2024-10-7 20:59:19

局部变量一定要在作用域范围内赋值或者printf输出,如果超出作用域,那就需要转移赋值给全局变量再输出了

vb2002 发表于 2024-10-7 23:26:45

晓飛飛 发表于 2024-10-7 20:59
局部变量一定要在作用域范围内赋值或者printf输出,如果超出作用域,那就需要转移赋值给全局变量再输出了 ...

好的飞哥,记住了。
以后我要监控某个变量。转成全局变量再printf

Lkck8210 发表于 2024-10-8 11:02:50

你的printf重定向到哪里了
是不是CDC串口?
定时器0的中断优先度很高
如果在定时中断里有死等其他中断(如USB)的代码就会死机

angalp 发表于 2024-10-19 21:47:35

Lkck8210 发表于 2024-10-8 11:02
你的printf重定向到哪里了
是不是CDC串口?
定时器0的中断优先度很高


学习到了

远行的鹿 发表于 2024-10-19 22:17:53

函数内的变量的作用域只在本函数内,其他地方是不能访问的。其他地方要知道这个局部变量是多少需要通过一些方式把变量值传递出去,或者把局部变量换成全局的。
页: [1] 2
查看完整版本: printf怎么打印 局部变量啊 | 全局变量