[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:通常用在指向易变内存空间的指针的声明中,防止编译器优化只读取易变空间一次值。
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

C语言中的技术陷阱

说明 C语言深入学习阶段,我正在读《C语言编程之道》这本书,整理了C语言中的一些技术陷阱。这本书上的封面上有一句话我觉得挺有道理——“每多学一点知识,就少写一行代码”,知识便是财富。 一、C语言中...

第三章:底层技术

1:帧格式 1:以太网发送以帧为单位,帧最小64字节,最大1518字节,也就是上层数据最小48字节,最大1500字节   2:编址 1:帧中源地址只会是单播地址,如果6字节目的物理地址第一个字...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

C语言技术积累

1. 如何十六进制打印一个char型数据 #include stdio.h> int main(int argc, char **argv) {     char c ...

Objective-C Runtime的知识

笔记分为四篇:刨根问底Objective-C Runtime(1)- Self & Super刨根问底Objective-C Runtime(2)- Object & Class & Meta Cla...

Spring AOP的底层实现技术

http://www.51cto.com/specbook/223/39480.htm   Spring AOP的底层实现技术     ...

Spring AOP的底层实现技术

AOP概述 软件的编程语言最终的目的就是用更自然更灵活的方式模拟世界,从原始机器语言到过程语言再到面向对象的语言,我们看到编程语言在一步步用更自然、更强大的方式描述软件。AOP是软件开发思想的一个飞...

Spring AOP的底层实现技术

AOP概述 软件的编程语言最终的目的就是用更自然更灵活的方式模拟世界,从原始机器语言到过程语言再到面向对象的语言,我们看到编程语言在一步步用更自然、更强大的方式描述软件。AOP是软件开发思想的一个...

Spring AOP的底层实现技术

AOP概述软件的编程语言最终的目的就是用更自然更灵活的方式模拟世界,从原始机器语言到过程语言再到面向对象的语言,我们看到编程语言在一步步用更自然、更强大的方式描述软件。AOP是软件开发思想的一个飞跃,...
  • lclai
  • lclai
  • 2011-02-27 12:53
  • 1011

伟大的网页底层技术:BigPipe

Facebook的网站速度做为最关键的公司任务之一。在2009年,我们成功地实现了Facebook网站速度提升两倍 。而正是我们的工程师团队的几个关键的创新使它成为可能。在本文中,我将向大家介绍我们的...

Spring AOP的底层实现技术

AOP概述 软件的编程语言最终的目的就是用更自然更灵活的方式模拟世界,从原始机器语言到过程语言再到面向对象的语言,我们看到编程语言在一步步用更自然、更强大的方式描述软件。AOP是软件开发思想的一个飞...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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