本章重点:修饰符,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相关推荐

  1. 学生成绩排名及管理系统c语言,学生成绩管理系统__C语言版.doc

    学生成绩管理系统__C语言版 学生成绩管理系统__C语言版 #include #include #include #include #include #include using namespace ...

  2. 用c语言画滚动的圆,求__C语言实现圆球滚动{高手速来}

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 点鼠标左键向左移动,点鼠标右键向右移动 #include LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LP ...

  3. rsa加密c语言源码库,RSA加密算法源代码C语言实现.doc-资源下载在线文库www.lddoc.cn...

    RSA加密算法_源代码__C语言实现.doc RSA 算法 1978 年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字以发明者的名字命名Ro ...

  4. 动态语言会淘汰静态语言吗?

    上一篇博客动态语言会导致开发质量下降吗?,尽管没有我想像的那么多争议,但还是如期引发了一些误解.有一些朋友指出动态语言,具体来说是 Python 中的各种问题.这些我认为是大部分是正确的. 我写上文的 ...

  5. PHP、 Ruby、Python、Java、C++、C、Objective C——编程语言之禅

    PHP是你豆蔻年华时的心上人,她是情窦初开的你今年夏天傻乎乎追求的目标.玩一玩可以,但千万不要投入过深,因为这个"女孩"有严重的问题. Ruby是脚本家族中一个非常漂亮的孩子.第一 ...

  6. 用通俗易懂的语言描述java,如何用通俗易懂的话来形容各种不同的编程语言?...

    如何用通俗易懂的话来形容各种不同的编程语言? PHP是你的青春的心上人,她是情窦初开的你今年夏天傻傻的追求的目标. 玩一玩可以,但千万不要投入过深,因为这个女孩是个问题女孩. Ruby是脚本家族中一个 ...

  7. baidu+app+per+android,百度移动统计|移动应用APP统计|android统计分析|iOS统计分析

    SDK快速接入(Objective C)#内附接入视频# SDK快速接入(Objective C)#内附接入视频# iOS SDK快速接入视频 1. 下载SDK 2.创建一个新的XCode iOS开发 ...

  8. gcc、arm-linux-gcc和arm-elf-gcc的关系?

    一.GCC简介 The GNU Compiler Collection,通常简称 GCC,是一套由 GNU 开发的编译器集,为什么是编辑器集而不是编译器呢?那是因为它不仅支持 C 语言编译,还支持 C ...

  9. 学习云计算学哪种编程语言_您应该学习哪种编程语言?

    学习云计算学哪种编程语言 如果您想入门或在编程生涯中取得成功,学习一种新语言是一个明智的主意. 但是大量使用中的语言引发了一个问题:哪种编程语言是最好的一种? 为了回答这个问题,让我们从一个简化的问题 ...

  10. 浅析gcc、arm-linux-gcc和arm-elf-gcc的关系-转

    嵌入式开发交流群280352802,欢迎加入! 一.GCC简介 The GNU Compiler Collection,通常简称 GCC,是一套由 GNU 开发的编译器集,为什么是编辑器集而不是编译器 ...

最新文章

  1. spring事件通知机制详解
  2. 05: zabbix 监控配置
  3. 完整的一次 HTTP 请求响应过程(一)
  4. 成人高考计算机考试技巧,备战2015年成人高考:计算机基础考试经验分享
  5. kl散度定义_Kullback-Leibler(KL)散度介绍
  6. nodejs mysql 连接池初始化_nodejs之mysql连接池
  7. Silverlight 打印
  8. 三年租男友回家竟花了10万......
  9. 搜狗浏览器热搜怎么关 热搜关闭方法详解
  10. 阅文推“单本可选新合同”:授权分级、免费或付费自选
  11. MM物料移动BW数据源介绍
  12. python xlrd 写入已有的excel并保留原excel格式
  13. 『开发技巧』全网最详尽手把手教你在Ubuntu安装搜狗输入法
  14. 华为应用市场推出独家年终游戏节活动,包括12款最热门手游
  15. 数据库数据 - - - - 中国省份和市
  16. 解决串口通信时会导致鼠标乱跳的问题
  17. keil中报错可能出现的问题
  18. 音响器材输出、输入连接的平衡与非平衡接驳端口问题
  19. sinee303a变频器说明书_SINEE正弦变频器EM303A-022G-3A正弦变频器说明书
  20. office插件开发_办公软件WPS和office哪个好用?职场的你赶紧学起

热门文章

  1. TCP/IP参考模型入门
  2. 斯坦福大学CS143编译原理课程笔记:4. Cool语言概述
  3. 数据库链接池c3p0的配置
  4. 模拟 Vue 手写一个 MVVM
  5. 微软将所有的Windows代码库迁移到Git
  6. [讨论] 全新首发WIN7 3264 WINSXS进一步精简批处理公测
  7. 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护 3
  8. 在centos linux上安装jdk7
  9. 从工作组向域管理转型该如何设置?
  10. 11.string容器