首页
文章
标签
留言板
链接
关于我
标签:
objdump(Linux)反汇编命令使用指南
1 objdump反汇编示例源文件main.c:/* main.c */ #include <stdio.h> void swap(int* first, int* second) { int temp = *first; *first = *secon
2022-01-28
/
21
阅读
用 Addr2line 可以将函数地址解析为函数名
Addr2line 工具(它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名、函数名和源代码行数的工具。这种功能对于将跟踪地址转换成更有意义的内容来说简直是太棒了。要了解这个过程是怎样工作的,我们可以试验一个简单的交互式的例子。(我直接从 shell 中
2022-01-28
/
28
阅读
这是一个小型的C语言编译器,可以实现自我编译。
//wzh.c #include <stdio.h> #include <stdlib.h> #include <memory.h> #include <unistd.h> #includ
2022-01-28
/
24
阅读
C语言用GCC编译报错error: conflicting types for XXX解决办法
GCC编译报错如下:报错信息Application\APP_Common.h|135|error: conflicting types for 'KeyboardNavigation1'|原因分析:函数使用的位置位于声明之前,或未声明函数原型就使用函数;这种情况往
2022-01-19
/
24
阅读
C语言的结构体前置声明,?C语言的不完整类型和前置声明
声明与定义(Declaration and Definition)开始这篇文章之前,我们先弄懂变量的declaration和definition的区别,即变量的声明和定义的区别。一般情况下,我们这样简单的分辨声明与定义的区别:建立存储空间的声明称之为“定义”,而把不需要建立存储空间的称之为“声明”。
2022-01-19
/
23
阅读
C语言简单介绍
语言简介C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代
2022-01-19
/
21
阅读
C的联合体和结构体区别
区别联合体与结构体是很容易混淆的概念。粗略一看,两者无论声明、定义还是定义对象的方式都很相似。然而这两个东西的概念和作用实际千差万别。首先,联合体的各个成员共用内存,并应该同时只能有一个成员得到这块内存的使用权(即对内存的读写),而结构体各个成员各自拥有内存,各自使用互不干涉。所以,某种意义上来说,
2022-01-28
/
21
阅读
C语言下实现的String库
C语言的StringC语言作为一门古老的高级语言,对于字符串的支持十分的薄弱。入门时我们就知道我们使用数组来包含一串的ASCII字符来作为字符串的实现,如char arr[] = "hello world!";这样基于长度固定的数组的实现方式就导致了C的字符串的长度是不可变的,但
2022-01-28
/
18
阅读
C语言与汇编语言相互调用原理以及实例
下面两个分别是一个foo.asm(汇编语言文件),bar.c(c语言文件)首先来了解C语言为什么能调用汇编语言,以及汇编语言为什么能调用C语言。其实不管是C语言还是汇编语言想要执行都是最终编译链接成为二进制文件。注意是编译链接这个两个步骤,编译产生的并不是可执行的二进制文件,链接之后才是可执行的二进
2022-01-28
/
31
阅读
C语言之list_head双向链表
对于嵌入式开发者来说,双向链表是用的非常多的一种数据结构之一,在linux内核里面有一个叫做list\_head的结构体,专门用来做双向链表的种种操作,掌握并理解双向链表以及list\_head的实现方式对于嵌入式开发来说是非常有帮助的。为什么要用链表在嵌入式开发实际编程当中,会经常有数据管理之类的
2022-01-28
/
18
阅读
首页
上一页
1
2
3
下一页
末页