arm-linux-ld命令

我们对每个c或者汇编文件进行单独编译,但是不去连接,生成很多.o 的文件,这些.o文件首先是分散的,我们首先要考虑的如何组合起来;其次,这些.o文件存在相互调用的关系;再者,我们最后生成的bin文件是要在硬件中运行的,每一部分放在什么地址都要有仔细的说明。我觉得在写makefile的时候,最为重要...

2013-04-26 11:50:38

阅读数:586

评论数:0

arm-linux-objdump 参数

arm-linux-objdump 用来显示二进制文件信息 和 查看反汇编代码 arm-linux-objdump –D elf_file > dis_file (elf 可执行文件的格式) arm-linux-objdump –D –b binary –m arm bin_...

2013-04-25 21:37:51

阅读数:841

评论数:0

C与汇编混合编程

C与汇编之数据交流:可以使用全局变量实现。在C中声明全局变量后,在汇编程序中使用IMPORT+全局变量名,导入全局变量,之后可以在汇编中使用这个全局变量了。 C调用汇编中的函数:1.在汇编程序中使用EXPORT导出函数名。2.在C中是用extern关键字声明汇编中的函数。 汇编...

2013-04-24 20:13:41

阅读数:713

评论数:0

C/C++的数值常数后缀的使用总结

1.数值常数有:整型常数、浮点常数;   2.只有数值常数才有后缀说明;   3.数值常数后缀不区分字母大小写。   (1)整型常数的表示形式有:十进制形式、以0开头的八进制形式、以0x开头的十六进制形式,无二进制形式。   整型常数默认是signed int的。 ...

2013-04-23 22:04:16

阅读数:1276

评论数:0

不能对数组名进行直接复制与比较。

不能对数组名进行直接复制与比较。示例中,若想把数组a的内容复制给数组b,不能用语句 b = a ,否则将产生编译错误。应该用标准库函数strcpy进行复制。同理,比较b和a的内容是否相同,不能用if(b==a) 来判断,应该用标准库函数strcmp进行比较。 语句p = a 并不能把a的内容复制...

2013-04-22 15:42:06

阅读数:653

评论数:0

以字符串为例比较指针与数组的特性

修改内容: 字符数组a的容量是6个字符,其内容为hello\0。a的内容可以改变,如a[0]= ‘X’。指针p指向常量字符串“world”(位于静态存储区,内容为world\0),常量字符串的内容是不可以被修改的。从语法上看,编译器并不觉得语句p[0]= ‘X’有什么不妥,但是该语句企图修改...

2013-04-21 20:48:16

阅读数:510

评论数:0

排序算法相关概念

排序方法从其基本思想出发可以分为五种: 1.插入排序、 2.选择排序、 3.交换排序、 4.分配排序、 5.归并排序、 每一种方法具体可能有多种算法。 /---------------------------------------------...

2013-04-20 20:19:58

阅读数:561

评论数:0

数组名a 作为 左值和 右值的区别

比如:x=y 左值:在这个上下文环境中,编译器认为x的含义是x所代表的地址。这个地址只有编译器知道,在编译的时候确定,编译器在一个特定的区域保存这个地址,我们完全不必考虑这个地址保存在哪里。 右值:在这个上下文环境中,编译器认为y的含义是y所代表的地址里面的内容。这个内容是什么,只有到运行时才...

2013-04-20 17:06:41

阅读数:1560

评论数:0

编写可变参数c函数

前言:本文在很大程度上改编自网友kevintz的“C语言中可变参数的用法”一文,在行文之前先向这位前辈表示真诚的敬意和感谢。 一、什么是可变参数 我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* fo...

2013-04-19 22:16:34

阅读数:440

评论数:0

一个有无限层间接引用的循环链表

/*Would run forever if you didn't limit it to MAX */ #include struct circ_list{ char value[ 3 ]; struct circ_list* next; }; struct circ_list suff...

2013-04-19 11:15:51

阅读数:505

评论数:0

如何对数组进行初始化

嵌套的花括号进行初始化多维数组: 如1 short cantaloupe[2][5]={ {10,12,3,4,一5}, {31,22,6,0,-5}, }; 如2 intrhubarb[][3]={{0,0,0},{1,1,1},}; 建立指针数组进行初始化...

2013-04-19 10:49:46

阅读数:668

评论数:0

数组与指针归纳总结

1.用a[i]这样的形式对数组进行访问总是被编译器“改写”或解释为像*(a+1)这样的指针访问。 2.指针始终就是指针。它绝不可以改写成数组。 3.在特定的上下文中,也就是它作为函数的参数(也只有这种情况),一个数组的声明可以看作是一个指针。作为函数参数的数组(就是在一个函数调用中)始终会被编...

2013-04-19 09:19:07

阅读数:423

评论数:0

指针有一个下标[I]

如果指针有一个下标[I],就把指针的内容加上I作为地址,从中提取数据 (例:二维数组,访问单个字符都是通过carrot[i][j]的形式, 编译器在编译时会把它解析为*(*(carrot+i)+j)的形式)

2013-04-19 08:51:23

阅读数:576

评论数:0

编写可变参数c函数

前言:本文在很大程度上改编自网友kevintz的“C语言中可变参数的用法”一文,在行文之前先向这位前辈表示真诚的敬意和感谢。 一、什么是可变参数 我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* fo...

2013-04-18 18:05:33

阅读数:475

评论数:0

C语言标准库函数目录

不是软件产业的领头人,就永远只有跟随的份,不过也有好处,站在前人的肩膀上可以节省很多时间去做更有用的事。现在说说C语言的标准库函数。好多C语言库函数参考还是用的TC的库函数参考,因此特地把现在C语言(C99)标准库函数的24个头文件列表如下: assert.h  inttypes.h(C99...

2013-04-18 09:44:11

阅读数:659

评论数:0

库函数注意事项

1.库名原则上是保留字。编程人员不能定义与标准库名称同名的外部对象。 2.库头文件或文件名可以内置在实现中,但仍然要被包括之后才能访问其名称 3.编程人员可以多次按任意顺序包括库头文件

2013-04-17 22:09:57

阅读数:438

评论数:0

如何从标准c语言定义得到传统c语言库函数定义

1.消除任何使用标准c语言类型的函数,如long long与_Complex,或消除标准c语言中新增的函数(C89或C99). 2.删除限定符const、restrict与volatile 3.删除数组声明符括号内使用的static. 4.将类型void * 换成char * ,将size_...

2013-04-17 22:07:11

阅读数:571

评论数:0

函数调用时发生了什么

跟踪调用链: 1.C语言自动提供的服务 2.哪些函数调用了哪些函数 3.实现机制:堆栈中的过程活动记录 过程活动记录: 1.是一种数据结构 2.支持过程调用 3.记录调用结束以后返回调用点所需要的全部信息

2013-04-17 22:02:22

阅读数:408

评论数:0

a.out

A.out-----“assembler output(汇编程序输出)”的缩写形式 a.out是早期UNIX系统使用的可执行文件格式,由AT&T 设计,现在基本上已被ELF 文件格式代替. a.out文件包含7 个section,格式如下: 1.exec header...

2013-04-17 21:53:58

阅读数:407

评论数:0

标准库函数优势

1.准确性 2.高效性 3.可移植性

2013-04-16 22:30:47

阅读数:567

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭