另:结构与联合是pic应用的一个好东西,这点HOTpower曾经有一很经典的文章,在此列中,只要稍微加以改动,就可以对一个16位变量即可以整体访问,也可分为高八位访问和低八位访问。这在ad转换中是很有用的。
4: const与指针
const是一个C语言的关键字,它限定一个变量不允许被改变。 如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况:
int b = 500;
const int* a = &b; [1]
int const *a = &b; [2]
Int* const a = &b; [3]
const int* const a = &b; [4]
如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。因此,[1]和[2]的情况相同,都是指针所指向的内容为常量(const放在变量声明符的位置无关),这种情况下不允许对内容进行更改操作,如不能*a = 3 ;[3]为指针本身是常量,而指针所指向的内容不是常量,这种情况下不能对指针本身进行更改操作,如a++是错误的;[4]为指针本身和指向的内容均为常量。
有了上面的基础,对于在picc18中的c语言应用就可以开始了,在 单片机 编程中,经常会用到查表程序等,通常把大量的数据放入rom中,下面是一个简单的列子
const int a[8]={1,2,3,-3,3,5,6,7};
const int *ptr;
main()
{
ptr=a;
ptr++;
}
显然ptr是一个指向常量的指针,ptr指向的数是不可变的,但是ptr本身是可变的,我们可以通过ptr来访问定义在rom中的数组a[8];
上一页 [1] [2]
本文关键字:暂无联系方式PIC单片机,单片机-工控设备 - PIC单片机