C语言学习笔记 【2】

本文介绍了C语言中的预处理器指令#include的作用,头文件的使用,注释的两种形式,main函数的花括号规则,变量声明的重要性,以及提高代码可读性和查找隐藏错误的方法,如使用return语句和调试器。
摘要由CSDN通过智能技术生成

1. #include这行代码是一条C预处理器指令(preprocessor directive)。通常,C编译器在编译前会对源代码做一些准备工作,即预处理(preprocessing)。

#include <stdio.h>的作用相当于把stdio.h文件中的所有内容都输入该行所在的位置。实际上,这是一种“拷贝-粘贴”的操作。include文件提供了一种方便的途径共享许多程序共有的信息。所有的C编译器软件包都提供stdio.h文件。该文件中包含了供编译器使用的输入和输出函数(如,printf())信息。该文件名的含义是标准输入/输出头文件。

通常,在C程序顶部的信息集合被称为头文件(header)。 在大多数情况下,头文件包含了编译器创建最终可执行程序要用到的信息。例如,头文件中可以定义一些常量,或者指明函数名以及如何使用它们。但是,函数的实际代码在一个预编译代码的库文件中。简而言之,头文件帮助编译器把你的程序正确地组合在一起。

#include中的#符号表明,C预处理器在编译器接手之前处理这条指令。本书后面章节中会介绍更多预处理器指令的示例。

2. 注释两种

/* 这里是注释 */          可以跨越多行

//这里是注释                只能跨单行

3. 花括号把main()函数括起来。一般而言,所有的C函数都使用花括号标记函数体的开始和结束。这是规定,不能省略。只有花括号({})能起这种作用,圆括号(())和方括号([])都不行。

4. C语言中,所有变量都必须先声明才能使用。这意味着必须列出程序中用到的所有变量名及其类型。以前的C语言,还要求把变量声明在块的顶部,其他语句不能在任何声明的前面。C99和C11遵循C++的惯例,可以把声明放在块中的任何位置。尽管如此,首次使用变量之前一定要先声明它。        

5. 可以用小写字母、大写字母、数字和下划线(_)来命名变量。而且,名称的第1个字符必须是字母或下划线,不能是数字。操作系统和C库经常使用以一个或两个下划线字符开始的标识符(如,_kcab),因此最好避免在自己的程序中使用这种名称。标准标签都以一个或两个下划线字符开始,如库标识符。这样的标识符都是保留的。这意味着,虽然使用它们没有语法错误,但是会导致名称冲突。

6. 有返回值的C函数要有return语句。该语句以return关键字开始,后面是待返回的值,并以分号结尾。如果遗漏main()函数中的return语句,程序在运行至最外面的右花括号(})时会返回0。因此,可以省略main()函数末尾的return语句。但是,不要在其他有返回值的函数中漏掉它。因此,强烈建议读者养成在main()函数中保留return语句的好习惯。

C程序解剖

 

 

提高代码可读性

1. 起有意义的变量名

2. 写注释

3. 善用空行隔开不同模块,例如:用空行把声明部分和程序的其他部分区分开来。

4. 每条语句各占一行。

提高代码可读性

 

 

 函数原型要放在开头

函数定义的位置不影响函数调用,我们通常把main函数放在第一个。

编译器的一个常见的毛病是,报错的位置比真正的错误位置滞后一行。例如,编译器在编译下一行时才会发现上一行缺少分号。因此,如果编译器报错某行缺少分号,请检查上一行。

如何找编译器看不出来的bug

1. 顺着程序一步步看

2.在程序中的关键点插入额外的printf()语句,以监视指定变量值的变化。通过查看值的变化可以了解程序的执行情况。对程序的执行满意后,便可删除额外的printf()语句,然后重新编译。

3. 检测程序状态的第3种方法是使用调试器。调试器(debugger)是一种程序,让你一步一步运行另一个程序,并检查该程序变量的值。调试器有不同的使用难度和复杂度。较高级的调试器会显示正在执行的源代码行号。这在检查有多条执行路径的程序时很方便,因为很容易知道正在执行哪条路径。如果你的编译器自带调试器,现在可以花点时间学会怎么使用它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值