Objective-C学习准备__C语言6

本章重点:修饰符,gcc单步调试。

今天介绍一下C语言的几个修饰符  auto,register,static,extern

首先看auto:,自动的意思,在函数内部定义的变量成为局部变量。在某些C语言教材中,局部变量称为自动变量,这就与使用可选关键字auto定义局部变量这一作法保持一致。     局部变量仅由其被定义的模块内部的语句所访问。换言之,局部变量在自己的代码模块之外是不可知的。切记:模块以左花括号开始,以右花括号结束。
对于局部变量,要了解的最重要的东西是:它们仅存在于被定义的当前执行代码块中,即局部变量在进入模块时生成,在退出模块时消亡。
定义局部变量的最常见的代码块是函数。

register: CPU有高速缓存即寄存器,速度非常快,但内存非常小,加这个修饰后,这个变量的存放位置就在register高速缓存里。一般用于频繁修改的全局变量~

static :静态变量,让一个变量长期有效,而不管其是在什么地方被申明。即使是在函数内声明  函数退出后它依然保存  静态变量其实在编译时就已经分配了空间,
它不存在于堆或栈,也因此数据能一直保留。

extern:外部的,当你主文件内要使用引入文件的变量是就要做这个声明  表示这个表里是外部引入的  方便排错 也防止文件过多变量名混乱

接下来学习一下MinGW中gcc的单步调试

首先gcc -g file生成调试用的可执行文件

gdb file 进入调试

break 设置断点

start  开始运行

基本gdb命令:
---------------------------------------------------------------------
命令          简写         功能
---------------------------------------------------------------------
file                             装入想要调试的可执行文件.
kill              k              终止正在调试的程序.
list              l              列出产生执行文件的源代码的一部分.
next           n             执行一行源代码但不进入函数内部.
step           s             执行一行源代码而且进入函数内部.
continue     c             继续执行程序,直至下一中断或者程序结束。
run            r             执行当前被调试的程序.
quit           q             终止 gdb.
watch                       使你能监视一个变量的值而不管它何时被改变.
catch                       设置捕捉点.
thread        t            查看当前运行程序的线程信息.
break         b            在代码里设置断点, 这将使程序执行到这里时被挂起.
make                       使你能不退出 gdb 就可以重新产生可执行文件.
shell                        使你能不离开 gdb 就执行 UNIX shell 命令.
print          p            打印数据内容。
examine     x            打印内存内容。
backtrace   bt           查看函数调用栈的所有信息

原文地址:https://www.cnblogs.com/pengser/p/4915762.html