中优智控(中优智控西安联系电话) ypxx.net

PLC程序调试技巧系列

全11讲 · 公众号推文合集

调试有方法,问题不再难

──────────────────────────────

SECONTROL · ICS软件技术团队

📌 第02篇

程序调试进阶 | 空指针陷阱:一个NULL引发的系统崩溃

──────────────────────────────

指针是高级编程中的"双刃剑"——用得好,程序灵活高效;用得不好,轻则数据错乱,重则系统异常崩溃。其中,"访问空指针"是常见也是危险的错误。

什么是指针?什么是空指针?

每个变量在内存中都有一个地址

指针就是专门用来存储这个地址的特殊变量,如果p是一个指向变量a的一个指针变量,则在内存中表现如下

通过"ADR"操作符可以获取变量地址并赋给指针;通过"^"操作符(解引用)可以读写该地址上的值。

当指针变量的值为 0 时,就称为"空指针"。对空指针解引用,会直接触发系统异常,程序崩溃。

如何安全避免空指针?

方法一:在访问指针之前,先判断指针变量是否为 0

方法二:如果指针访问出现在 IF 条件中,使用 AND_THEN 操作符

AND_THEN 的逻辑:首先条件为 FALSE 时,后续条件不再执行

这样即使指针为 0,也不会触发解引用操作

💡 编程建议:养成"使用前先判空"的习惯,是每位工控程序员的必备素养。无论是指针还是引用,防御性编程永远是稳妥的选择。

小心使用指针,程序才能稳如磐石。下一期,我们来聊聊"除零"这个看似简单却暗藏玄机的问题。

#ST调试技巧 #空指针 #指针安全 #AND_THEN #PLC编程