C 语言
clbiao
静以修身,俭以养德。淡泊明志,宁静致远。
展开
-
汇编和C语言的参数传递
启动汇编文件里面有下面这一段语句:ldr r0, =0x30000000mov r1, #4096mov r2, #2048 @3. 复制长度= 2048(bytes),对于本实验的main.c,这是足够了bl nand_read其中这个nand_read函数定义在一个c文件里面,且带3个参数:void na原创 2014-03-11 15:22:45 · 3529 阅读 · 1 评论 -
C语言小板凳(2)
(1)typedef高档用法:typedef void (*sighandler_t)(int);盖住 typedef不看 ,再简单不过,sighandler_t就是一个函数指针,指向的函数接受一个整型参数并返回一个无类型指针加上typedef之后sighandler_t就是一种新的类型,就可以像int一样地去用它,不同的是它声明是一种函数指针,这种指针指向的函数接受一个整型参数并返回原创 2015-03-23 22:18:04 · 968 阅读 · 0 评论 -
C语言小板凳(1)
①strlen()函数作用:计算字符串的长度,当遇到“\n”字符时结束,即遇到数值“0”时结束计算,有一点特别要注意当这个函数用来计算数组的长度的时候遇到数值0他就停止计算了!②register关键字修饰的变量不可以使用“&”取地址符来获取地址,因为它可能不在内存。③ 问:“static”关键字修饰的变量能被改变不?答:肯定可以,它在编译的时候放在静态区,原创 2015-03-16 00:30:29 · 1048 阅读 · 0 评论 -
C语言笔记
(1)一个.c文件对应一个.h文件:在.c文件里面具体的定义函数的功能,在.h文件里面声明.c文件里面的函数和定义一些全局变量。通常每一个.h文件的代码格式:(叫条件编译头文件处理,是为了防止一个头文件被重复包含,降低编译的出错率)#ifndef _DEFINE_H#define _DEFINE_H······#endif(2)关键字的改名称,一般是用typedef原创 2014-03-11 00:25:39 · 542 阅读 · 0 评论 -
C语言头文件的使用
static的作用是使变量原创 2014-06-29 18:57:27 · 590 阅读 · 0 评论 -
可变参数函数定义要点
函数参数是以数据结构:栈的形式存取,从右至左入栈。首先是参数的内存存放格式:参数存放在内存的堆栈段中,在执行函数的时候,从最后一个开始入栈。栈底 高地址| ....... | 函数返回地址| ....... | 函数最后一个参数| .... | 函数第一个可变参数 | 函数最后一个固定的参数:ap根据其地址计算出| .... | 函数第一个固定的参数原创 2014-09-03 16:31:57 · 722 阅读 · 0 评论 -
scanf()和printf()
(1)特殊宏定义:重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植typedef unsigned int uint;typedef unsigned char uchar;*******这里一定要记的加上分号“;”,但是define使用时就不用******* (2)条件编译头文件处理:防止一个头文件被重复包含#ifndef _DEFINE原创 2013-10-15 19:44:52 · 852 阅读 · 0 评论 -
指针进阶(一)
指针一段时间没有接触就有点糊涂了,特别是今天学到链表的时候,一涉及到结构体指针大脑就转不过弯来。经过漫长的思考终于有了点收获,小结一下,下次忘记时可以看看。程序中定义一个指针:int *p;//这句话一执行,cpu就会分配一个存储空间给这个指针变量指针变量他也是个变量,要用平等的目光看待指针变量,他就和定义普通变量int a;一样,有自己的存储空间(地址)大家观念上会觉得他与众不同原创 2014-09-21 15:15:20 · 1126 阅读 · 0 评论 -
想成为嵌入式程序员应知道的0x10个基本问题
原文链接预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算转载 2014-03-25 22:12:12 · 588 阅读 · 0 评论 -
关于.INC文件
tq2440开发板的测试代码里面有好几个.INC文件,比如:2440addr.inc、Memcfg.inc、Option.inc。开始时在想,如果他们是做头文件用,不是已经用.h文件了么?好是纠结。打开INC文件发现里面有一个注释词Assembly,猜想是.S文件里面使用的,果不其然,在2440init.S文件的开头发现:GET 2440addr.inc等语句。下面记录上面这几个INC文件里面原创 2014-03-25 21:16:37 · 1745 阅读 · 0 评论 -
ARM GNU 汇编宏定义
在阅读u-boot1.1.6源码时遇到关于宏定义的问题,开始不太明白宏定义的具体的规则,现在算是明白过来了吧(^_^)宏定义的定义格式:.macro 宏名称 参数(多个之间用“,”隔开,也可以不带参数) 宏的实体部分.endm既然是宏,那么它和c语言里面的宏定义特点是一样的,比如:宏在调用处的展开,就是用宏定义的实体部分去完全取代宏名称,并且用实际的参数替换原创 2014-04-01 15:42:40 · 2879 阅读 · 0 评论 -
指针
指针的一些知识点: int *pointer_1,*pointer_2; //定义的是两个指针变量pointer_1和pointer_2,通俗点说就是地址变量a和b,既能存放地址的变量,加*之后又可以表示它所指向的值。如果temp=*pointer_1;意思就是将pointer_1地址所指向的内存空间中存储的数据值赋给变量temp(当然temp也要是int型)。原创 2014-02-13 15:19:05 · 584 阅读 · 0 评论 -
运算符的优先级和结合性
C语言中运算符的优先级和结合性:第一:( )、[ ]、->、 .(点) 第二:单目运算符,结合性是自右至左逻辑非 ! 、按位取反~、++、- -、负号 - 、类型转换、指针*、取地址&、sizeof第三:算数运算符(*、/、%)优先(+、-)第四:移位运算符>>、第五:关系运算符、>= 优先 ==、!=第六:按位运原创 2014-03-12 16:12:06 · 1086 阅读 · 0 评论 -
指针进阶(二)
(1)指针就是地址,也就是说在某一位数确定的操作系统中,他的范围是可以确定的,就是说指针变量的sizeof值是相等的。比如32位系统下,不管是指向char、int、还是long型变量的指针,他的大小都是4字节(2)sizeof是关键字,求值是发生在编译的时候,他不同于函数,因为函数的求值是发生在运行的时候。且看:int ch[6];sizeof(ch[6]);//是存在的,原创 2015-04-04 10:51:13 · 666 阅读 · 0 评论