在使用gcc编译的过程中,我们也会遇到程序错误,程序错误分为两种。一种是语法错位,一种是逻辑错误
(一)语法错误
如下图所示
当遇到语法错误时,每次编译代码都寻找第一个错误并修改,直到错误完全解决为止。
语法错误分为:error、warnning
error:无法生成可执行程序 warning:可以生成可执行程序,但程序中有可能出现错误
语法错误相对来说时比较容易解决的。
(二)逻辑错误
相对于语法错误来说,逻辑错误通常会造成比较大的影响,可能会使整个项目崩溃
所以逻辑错误的解决方法也是比较繁琐。
1、逐步打印
当然也不会是真的句句打印,能够大致定位到出错误的段落,对这个段落进行逐步打印
2、gdb调试器
调试步骤: 查看代码 -> 设置断点 -> 运行代码 -> 单步执行
(1)编译代码时必须加-g选项,允许GDB调试
gcc filename.c -g
(2)使用gdb调试代码
gdb ./a.out
(3)输入命令完成GDB调试
l 查看代码
b 函数名/行号 设置断点
r 运行代码
n 单步执行
c 继续执行到下一个断点
p 变量名 查看变量值
s 进入函数内部调试
q 退出
3、AI
这种方法就很简单粗暴了,不在过多赘述。(温馨提示AI也会出错,所以尽量还是自己能够找出来)
---------------------------------------------------------------------------------------------------------------------------------
C语言基础
C语言的学习任重而道远
今天的分享C语言中的基本数据类型
在了解基本数据类型前,先了解一下进制转换。在日常生活中我们常用十进制,我们都了解十进制的工作原理时逢十进一,以此类推二进制、八进制、十进制、十六进制
(1)二进制:逢二进一
0、1
(2)八进制:逢八进一
0、1、2、3、4、5、6、7
(3)十进制:逢十进一
0、1、2、3、4、5、6、7、8、9
(4)十六进制:逢十六进一
0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
我们不仅需要单独的进制机制,还要了解他们之间如何互相转换,其中最重要的是,二进制和十进制之间的互相转换
(1)二进制、八进制、十六进制 -> 十进制:
对应位 * 对应位的权值再求和
(2)十进制 -> 二进制、八进制、十六进制:
十进制数除以进制数得到的余数逆序排列
(3) 十进制 <-> 二进制
(4)二进制 <-> 八进制、十六进制
八进制的1位 == 二进制的3位
十六进制1位 == 二进制的4位
一、基本数据类型
在基本数据类型中我们需要了解数据类型在在内存空间所占字节数、存储方式、值域范围。
要特别注意在标识常量中:
1.标识常量宏名一般都是大写,与变量名区分
2.宏只是实现代码替换,中间不进行任何数据计算的操作(宏定义,能加括号就加括号)
3.使用宏能够提高代码的可读性