[HWRelated]C语言中的底层技术

原创 2015年07月11日 00:18:33
   问题描述:C语言适合编写嵌入式软件,其中就涉及到许多C的底层技术,如移位操作、按位与或非等,还有与硬件平台相关的寄存器操作。以下是通用C语言底层技术学习的一点记录。
   结构中位域:这个功能用于节省存储空间,如一个布尔变量只需要一位即可,没必要声明成int型。除了单片机中的直接按位寻址操作,还可以用结构中的位域来处理,
struct file_data {
    unsigned int day: 5;   // 前5位用于day成员的存储
    unsigned int month: 4; // 紧接day后面4位用于month成员的存储
    unsigned int year: 7;  // 接着的7个bit用于year成员的存储
};
    位域的类型建议使用unsigned int,signed int类型,使用int会引起二义性,一些编译器将位域的最高位作为符号位,而一些编译器不会。
   通常意义上位域没有地址,C语言不允许将&运算符用于位域。
    指针当作地址用:
BYTE *p;
p = (BYTE *)0x1000;
   volatile:通常用在指向易变内存空间的指针的声明中,防止编译器优化只读取易变空间一次值。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

IIC协议C语言底层程序

  • 2010年04月09日 16:41
  • 3KB
  • 下载

底层开发、C语言学习必备资料

  • 2013年03月17日 18:41
  • 489B
  • 下载

移植Matlab的底层模糊逻辑控制库(C语言)

Matlab拥有很多好用的Toolbox,如遗传算法,模糊逻辑控制(Fuzzy Logic Control,FLC),神经网络等等,一般都是大神写的,然后提交给Matlab公司,接着审核之后加入到新的...
  • fovwin
  • fovwin
  • 2013年06月06日 22:28
  • 6696

学习较底层编程:动手写一个C语言编译器

动手编写一个编译器,学习一下较为底层的编程方式,是一种学习计算机到底是如何工作的非常有效方法。 编译器通常被看作是十分复杂的工程。事实上,编写一个产品级的编译器也确实是一个庞大的任务。但是写一个小巧...

C语言笔试题的一些小探讨[2011年,硕士计算机相关职位笔试题 底层开发 嵌入式 FPGA等]

一、关于指针的思考 指针的基本概念: int a[100]; int *p; p=a;以上代码有一些基本的等价,需要铭记。 p等价于&a[0]等价于a *p等价于a[0]等价于*a ...
  • zfpnuc
  • zfpnuc
  • 2011年09月05日 21:29
  • 1991

C语言的底层操作

  • 2007年10月11日 06:54
  • 76KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[HWRelated]C语言中的底层技术
举报原因:
原因补充:

(最多只允许输入30个字)