2.7 调试程序

本文介绍了C语言编程中常见的语法和语义错误,如使用圆括号代替花括号、变量声明错误、注释遗漏和printf语句的分号遗漏。同时,讨论了语义错误的实例,如将n的3次方误写为n的4次方。提出了通过插入printf语句监控程序状态和使用调试器来定位和修复错误的方法。
摘要由CSDN通过智能技术生成

        程序的错误通常叫做bug,找出并修正错误的过程叫做调试(Debug)。试试找出下例程序的错误之处。

        程序清单2.4 nogood.c程序

/* nogood.c -- 一个有错误的程序 */
#include <stdio.h>
​
int main(void)
(
    int n, int n2, int n3;
​
    /* 该程序有多处错误
    n = 5;
    n2 = n * n;
    n3 = n2 * n2;
    printf("n = %d, n squared = %d, n cubed = %d\n", n, n2, n3)
​
    return 0;
)
 

2.7.1 语法错误

        上例程序中有多处语法错误,如果不遵循C语言的规则就会犯语法错误

错误之处:

  1. main()函数体使用圆括号来代替花括号

  2. 变量声明使用错误;应这样int n, n2, n3; 或者int n; int n2; int n3;

  3. main()中注释末尾漏掉了*/

  4. printf()语句末尾遗漏了分号


2.7.2 语义错误

        语义错误是指意思上的错误,上诉程序示例中有这样的错误:

        n3 = n2 * n2;

        此处n3原意表示n的3次方,但是代码中的n3被设置成了n的4次方(n2 = n * n)。

        编译器无法检测语义错误。因为这类错误并未违反C语言的规则。编译器无法了解你的真正意图,所以只能自己找出这些错误。


2.7.3 程序状态

        通过逐步跟踪程序的执行步骤,并记录每个变量,便可监视程序的状态。程序状态是在程序的执行过程中,某给定点上所有变量值的集合。它是计算机当前状态的一个快照。

        定位语义错误的另一种方法是:在程序中的关键点插入额外的printf()语句,以监视指定变量值的变化。通过查看值的变化可以了解程序的执行情况。对程序的执行满意后,便可删除额外的printf()语句,然后重新编译。

        检测程序状态的第3种方法是使用调试器。调试器是一种程序,让你一步一步运行另外一个程序,并检查该程序变量的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值