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
Objective-C学习准备__C语言6相关推荐
- 学生成绩排名及管理系统c语言,学生成绩管理系统__C语言版.doc
学生成绩管理系统__C语言版 学生成绩管理系统__C语言版 #include #include #include #include #include #include using namespace ...
- 用c语言画滚动的圆,求__C语言实现圆球滚动{高手速来}
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 点鼠标左键向左移动,点鼠标右键向右移动 #include LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LP ...
- rsa加密c语言源码库,RSA加密算法源代码C语言实现.doc-资源下载在线文库www.lddoc.cn...
RSA加密算法_源代码__C语言实现.doc RSA 算法 1978 年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字以发明者的名字命名Ro ...
- 动态语言会淘汰静态语言吗?
上一篇博客动态语言会导致开发质量下降吗?,尽管没有我想像的那么多争议,但还是如期引发了一些误解.有一些朋友指出动态语言,具体来说是 Python 中的各种问题.这些我认为是大部分是正确的. 我写上文的 ...
- PHP、 Ruby、Python、Java、C++、C、Objective C——编程语言之禅
PHP是你豆蔻年华时的心上人,她是情窦初开的你今年夏天傻乎乎追求的目标.玩一玩可以,但千万不要投入过深,因为这个"女孩"有严重的问题. Ruby是脚本家族中一个非常漂亮的孩子.第一 ...
- 用通俗易懂的语言描述java,如何用通俗易懂的话来形容各种不同的编程语言?...
如何用通俗易懂的话来形容各种不同的编程语言? PHP是你的青春的心上人,她是情窦初开的你今年夏天傻傻的追求的目标. 玩一玩可以,但千万不要投入过深,因为这个女孩是个问题女孩. Ruby是脚本家族中一个 ...
- baidu+app+per+android,百度移动统计|移动应用APP统计|android统计分析|iOS统计分析
SDK快速接入(Objective C)#内附接入视频# SDK快速接入(Objective C)#内附接入视频# iOS SDK快速接入视频 1. 下载SDK 2.创建一个新的XCode iOS开发 ...
- gcc、arm-linux-gcc和arm-elf-gcc的关系?
一.GCC简介 The GNU Compiler Collection,通常简称 GCC,是一套由 GNU 开发的编译器集,为什么是编辑器集而不是编译器呢?那是因为它不仅支持 C 语言编译,还支持 C ...
- 学习云计算学哪种编程语言_您应该学习哪种编程语言?
学习云计算学哪种编程语言 如果您想入门或在编程生涯中取得成功,学习一种新语言是一个明智的主意. 但是大量使用中的语言引发了一个问题:哪种编程语言是最好的一种? 为了回答这个问题,让我们从一个简化的问题 ...
- 浅析gcc、arm-linux-gcc和arm-elf-gcc的关系-转
嵌入式开发交流群280352802,欢迎加入! 一.GCC简介 The GNU Compiler Collection,通常简称 GCC,是一套由 GNU 开发的编译器集,为什么是编辑器集而不是编译器 ...
最新文章
- spring事件通知机制详解
- 05: zabbix 监控配置
- 完整的一次 HTTP 请求响应过程(一)
- 成人高考计算机考试技巧,备战2015年成人高考:计算机基础考试经验分享
- kl散度定义_Kullback-Leibler(KL)散度介绍
- nodejs mysql 连接池初始化_nodejs之mysql连接池
- Silverlight 打印
- 三年租男友回家竟花了10万......
- 搜狗浏览器热搜怎么关 热搜关闭方法详解
- 阅文推“单本可选新合同”:授权分级、免费或付费自选
- MM物料移动BW数据源介绍
- python xlrd 写入已有的excel并保留原excel格式
- 『开发技巧』全网最详尽手把手教你在Ubuntu安装搜狗输入法
- 华为应用市场推出独家年终游戏节活动,包括12款最热门手游
- 数据库数据 - - - - 中国省份和市
- 解决串口通信时会导致鼠标乱跳的问题
- keil中报错可能出现的问题
- 音响器材输出、输入连接的平衡与非平衡接驳端口问题
- sinee303a变频器说明书_SINEE正弦变频器EM303A-022G-3A正弦变频器说明书
- office插件开发_办公软件WPS和office哪个好用?职场的你赶紧学起