当前位置: 首页 > news >正文

潍坊网站建设方案外包光做网站推广咋样

潍坊网站建设方案外包,光做网站推广咋样,网站 安全 维护,怎么制作网站卖东西gdb调试工具 gdb调试的作用 gdb用于调试代码中逻辑错误,而非语法错误 gdb调试流程 生成可以使用gdb调试的执行文件 gcc -g xxx.c ---> 生成的文件可以使用gdb调试 进入gdb工具 gdb 可执行文件 ---> 使用gdb工具开始调试可执行文件 r/run:运行代码 …

gdb调试工具

gdb调试的作用

gdb用于调试代码中逻辑错误,而非语法错误

gdb调试流程

  1. 生成可以使用gdb调试的执行文件

gcc -g xxx.c ---> 生成的文件可以使用gdb调试

  1. 进入gdb工具

gdb 可执行文件 ---> 使用gdb工具开始调试可执行文件

r/run:运行代码

l/list:显示当前行下面的10行代码

b/break 函数名或者行数:添加断点

info b:查看断点信息

d/delete num:删除断点

n/next:单步调试程序,如果是函数整体执行,不会进入函数内部

s/step:单步调试程序,如果是函数会进入

p/print:查看变量的值

运行代码

查看代码

设置断点

  • 在add函数处添加了断点,然后直接运行程序
  • 然后就停在了第5行(实际是从第12行调用的),也就是在add中return的位置

  • 执行n执行,继续走一步,来到第6行
  • 再次执行n指令,也就是num赋值完毕,来到第13行
  • 又一次执行n指令,执行printf语句,显示了下一行语句:return 0;

查看变量的值

断点情况

查看断点

删除断点

调试 core 文件

core何时生成:当程序出现重大错误时,会生成一个临时的镜像文件,保存程序状态(段错误)

由于系统的权限问题,不是每一次段错误都会生成core文件

ulimit -a 查看文件的权限

core file size 如果为0该文件不会生成

ulimit -c unlimited :使用命令取消限制

如果使用 ulimit -c unlimited 后,还不能再当前目录生成core文件

在终端执行以下命令

sudo bash -c "echo core > /proc/sys/kernel/core_pattern"

需要同时gdb 可执行文件和core文件

gdb a.out core

程序会停在发生错误的一行

C高级部分

指针函数

本质上是函数,函数的返回值是地址

定义格式

存储类型 数据类型 *函数名(形参)

{

函数体;

return 地址;

}

函数指针

本质上是指针,指向函数的指针

函数名:函数的首地址

定义格式

存储类型 数据类型 (*函数指针名)(形参列表)

数据类型:指向函数的返回值类型一致

形参列表:指向函数的参数列表数据类型一致

通过函数指针调用函数

函数指针变量名(实参) ---> 指针代替函数名去调用函数

(*函数指针变量名)(实参)

什么情况下使用函数指针:

有机会看到 Linux 内核原码的时候,很多函数的参数用的是函数指针

这样写有什么意义?

方便、扩展性强,只需要一个 test 函数,可以实现不同的功能,这就是"多态"的特性,

面向对象三大特性:封装、继承、多态,我只需要一个接口,实现不同功能,就可以简化代码

函数指针可以将函数作为参数传递给其他函数调用

返回值参数为空

函数指针指向指针函数

一下程序执行结果是什么

#include <stdio.h>void *test(void *arg)
{printf("333\n");printf("%s\n", (char *)arg);printf("444\n");return NULL;
}int fun(void *(*p)(void *), void *arg)
{printf("111\n");p(arg);printf("222\n");return 0;
}int main(int argc, char const *argv[])
{fun(test, "hello");printf("555\n");return 0;
}

1. char *fun(int a, int *b);
定义一个函数指针指向这个函数:char *(*p)(int ,int *) = fun;2. void fun1(char *spl, int **st, int n);
定义一个函数指针指向这个函数:void (*p)(char *, int **, int)= fun1;3. void *fun2(int (*sp)[3], int m);
定义一个函数指针指向这个函数:void *(*p)(int (*)[3], int) = fun2;

函数指针数组

本质数组元素同类型函数指针

定义格式

存储类型 数据类型 (*函数指针数组名[元素个数]) (形参列表)

http://www.yayakq.cn/news/47753/

相关文章:

  • 滑县网站建设哪家专业手机 网站 开发
  • 温州人才网站开发广州cms建站系统
  • 建设企业网站中国建设银行海淀区网站建设公司
  • 网站怎么做qq微信登陆界面设计百度怎么收录我的网站
  • 建设工程重要网站诸城市建设局网站
  • 东莞网站建设优化东莞诊断网站seo现状
  • 厦门建设银行官方网站帮人做logo网站
  • 昆山品牌网站建设网站建设策划书事物选题
  • 网站排名易下拉系统网站建设的未来
  • 做微信小程序网站建设公司网站的请示
  • 英文网站建设服务合同模板下载贷款网站开发
  • 全国思政网站的建设情况旅游网站制作代码
  • 门户网站地方生活门户有哪些在线刷关键词网站排名
  • 河长制网站建设青岛房产网房天下
  • Delphi 网站开发框架企业官网模板图下载
  • 投票网站模板怎么在wordpress上添加饰品
  • 有没有帮忙做网站建设阿里巴巴网站
  • 做废塑料生意那个网站最专业企业猫源码网
  • 网站建设后续的费用杭州房产网 官方
  • 如何做pdf电子书下载网站申请友情链接
  • 坪山附近公司做网站建设哪家效益快怎么制作简易网页
  • 台州网站建设公司.天天想你视频免费观看西瓜
  • 佛山网站设计怎么做临沂网站建站专业公司
  • 旅游网站推广方案网站的企业特色展示
  • 石狮网站建设报价网站建设与管理是干什么的
  • 网站建设最新教程私人订制软件平台
  • 微网站如何做微信支付网站建设柚子网络科技官网
  • python免费自学网站建设工程与建设工程项目
  • 阿里云做网站开发吗网页视频怎么下载到电脑本地
  • 不收费的企业查询网站北京网站设计制作招聘信息