《C语言解惑》—— 1.9 记住我就会受益无穷

简介:

本节书摘来自华章出版社《C语言解惑》一 书中的第1章,第1.9节,作者:刘振安 刘燕君,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.9 记住我就会受益无穷

【例1.6】分析下面程序存在的错误。

#include <stdio.h>
void main()
{;
     printf("输入x:");
     double x;
     scanf("%Lf",x); 
     printf("输出x:%f\n",x);

首先可以借助编译器查错。编译后给出如下错误信息。

error C2143: syntax error : missing ';' before 'type'
error C2065: 'x' : undeclared identifier
fatal error C1004: unexpected end of file found

注意 3条提示只是参考,并不准确,例如主程序“{”处多了“;”号,这就无法判断,所以最后的确认还需要自己分析。

第1条信息定位于double语句,错误信息就不准确了,但可以判断出是声明变量的位置错误,应该把x的声明提到最前面。第2条信息定位于scanf语句,错误信息说没有声明变量x,其实是声明的位置不对,只要改正了前一个错误语句,这条错误信息就没有了。第3条信息很准确,文件没有结束,少了一个“}”号。由此可见,在排错时,如果错误信息很多,可以先改有把握的,然后再编译看看,不要按错误信息的顺序埋头苦干,有时改正一个错误,会消除很多错误信息。
下面根据一个实际程序,用注释方式给出基本程序构成格式,记住它可以避免很多错误,达到事半功倍的效果。
【例1.7】基本程序构成格式示例。

#include <stdio.h>            //  预编译语句,注意尾部没有“;”号
void main( )            // 主程序,别忘记是圆括号( )
{                    // 主程序开始
      double x;            // 变量声明在最前面
      printf("输入x:");        // 程序语句用“;”号结束 
      scanf("%Lf",&x);        // 在scanf语句中,基本变量前面一定要加&号
      printf("输出x:%f\n",x);    // 程序语句用“;”号结束
}                    //主程序结束

【例1.8】对照给出的结构,分析下面程序的错误。

 #include <stdio.h>            //预编译
 #define MAX 9.5;
 #define MIN 1.5;
 #define SUB MAX-MIN;
 void main( )              
 {                    //主程序开始
     double answer= SUB;
     printf("差=%f\n",answe); 
 }                    //主程序结束

对照给出的规范:预编译语句,尾部不能有“;”号,可知本程序3条#define宏定义语句多了分号。另外,printf中的answer少了字母r。

相关文章
|
22天前
|
存储 编译器 C语言
爱上C语言:函数递归,青蛙跳台阶图文详解
爱上C语言:函数递归,青蛙跳台阶图文详解
|
8天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)
|
2天前
|
缓存 安全 编译器
【C 言专栏】C 语言函数的高效编程技巧
【5月更文挑战第1天】本文探讨了C语言中函数的高效编程技巧,包括函数的定义与作用(如代码复用和提高可读性)、设计原则(单一职责和接口简洁)、参数传递方式(值传递、指针传递和引用传递)、返回值管理、调用约定、嵌套与递归调用,以及函数优化技巧和常见错误避免。掌握这些技巧能提升C语言代码的质量和效率。
【C 言专栏】C 语言函数的高效编程技巧
|
5天前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
|
5天前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
|
5天前
|
C语言
(浙大版《C语言程序设计(第3版)》 习题6-5 使用函数验证哥德巴赫猜想 (20分)
(浙大版《C语言程序设计(第3版)》 习题6-5 使用函数验证哥德巴赫猜想 (20分)
|
7天前
|
安全 C语言
【C语言】strcpy与strncpy函数的使用和模拟实现
【C语言】strcpy与strncpy函数的使用和模拟实现
5 0
|
7天前
|
C语言
【C语言】字符分类函数与字符转换函数
【C语言】字符分类函数与字符转换函数
9 1
|
7天前
|
程序员 编译器 C语言
C语言之函数与参数
C语言之函数与参数
5 0
|
8天前
|
C语言
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)