http://blog.sina.com.cn/innate[订阅]
个人资料
分类
    内容读取中…
评论
读取中...
访客
读取中...
好友
读取中...
博文
程序的自我学习(2007-11-16 08:40)
 程序的自我学习即程序的自我改写自我繁殖自我维护是一体的
未来的程序不需要人来编写 而是程序自我生产代码自我编写自我维护
本人准备着手研究这方面
原创对联(2007-11-14 16:37)
冬季长跑常跑常长跑

今天早上看人家跑步的时候想到的不知道工整不
但是下联想不到了
求大家帮忙想一下
我个人觉的挺难的
 7-5 :使用断言来发现软件问题,提高代码可测性

说明:断言是对某种假设条件进行检查(可理解为若条件成立则无动作,否则应报告),它可以快速发现并定位软件问题,同时对系统错误进行自动报警。断言可以对在系统中隐藏很深,用其它手段极难发现的问题进行定位,从而缩短软件问题定位时间,提高系统的可测性。实际应用时,可根据具体情况灵活地设计断言。

示例:下面是C语言中的一个断言,用宏来设计的。(其中NULL为0L)

#ifdef _EXAM_ASSERT_TEST_  // 若使用断言测试

void exam_assert( char * file_name, unsigned int line_no )

{

    printf( '\n[EXAM]Assert failed: %s, line %u\n',

            file_name, line_no );

    abort( );

}

#define  EXAM_ASSERT( condition )

    if (condition) // 若条件成立,则无动作

 

 7-5 :使用断言来发现软件问题,提高代码可测性

说明:断言是对某种假设条件进行检查(可理解为若条件成立则无动作,否则应报告),它可以快速发现并定位软件问题,同时对系统错误进行自动报警。断言可以对在系统中隐藏很深,用其它手段极难发现的问题进行定位,从而缩短软件问题定位时间,提高系统的可测性。实际应用时,可根据具体情况灵活地设计断言。

示例:下面是C语言中的一个断言,用宏来设计的。(其中NULL为0L)

#ifdef _EXAM_ASSERT_TEST_  // 若使用断言测试

void exam_assert( char * file_name, unsigned int line_no )

{

    printf( '\n[EXAM]Assert failed: %s, line %u\n',

            file_name, line_no );

    abort( );

}

#define  EXAM_ASSERT( condition )

    if (condition) // 若条件成立,则无动作

 

转载 16个嵌入式问题(2007-08-30 10:26)

预处理器(Preprocessor)
1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
  我在这想看到几件事情:
  1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)
  2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中

      有多少秒而不是计算出实际的值,是更清晰而没有代价的。
  3) 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,

       告诉编译器这个常数是的长整型数。
  4) 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起

       点。记住,第一印象很重要。
 
2 . 写一个'标准'宏MIN ,这个宏输入两

xai(2007-07-22 19:04)
 关于ai的一些看法
将电脑程序创建为自编程自学习系统这样可以用来建立类人学习的程序
有待我们的开发
AT&T汇编格式(2007-06-21 10:45)
 AT&T汇编格式特点
1) 指令操作数的顺序是先源后目的,INTEL指令的先目的后源的顺序相反。
2)寄存器操作数前加前缀%。
3)立即数前加前缀$.
4)操作吗加后缀以指明操作数的长度,这些后缀有B(8位)、W(16位)、L(32位)。
5)大部分指令的操作码都与INTERL指令相同。
6)操作码的前缀(如 REP)要单独协议行,不要和他修饰的指令(如 MOVSB STOSB)写在同一行上。
7)内存间接寻址的格式不同。
8)局部标号可以用数字、而且可以重复。在以这些标号为目的的转移指令上,标号要带上后缀,B表示向前、F表示向后。
9)实模式下的语法与INTEL指令语法基本相同。
FPU与GPU 转载(2007-06-21 09:48)
 FPU:Float Point Unit,浮点运算单元,FPU是专用于浮点运算的处理器,以前的FPU是一种单独芯片,在486之后,英特尔把FPU与集成在CPU之内。
GPU:(Graphic Processing Unit)图形处理芯片。是显示卡的“心脏”,也就相当于CPU在电脑中的作用,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像和特效时主要依赖CPU的处理能力,称为“软加速”。3D显示芯片是将三维图像和特效处理功能集中在显示芯片内,也即所谓的“硬件加速”功能。显示芯片通常是显示卡上最大的芯片(也是引脚最多的)。现在市场上的显卡大多采用nVIDIA和ATI两家公司的图形处理芯片。
转载:assert的使用(2007-06-19 13:05)
 

程序一般分为Debug版本和Release版本,Debug版本用于内部调试,Release版本发行给用户使用。

断言assert是仅在Debug版本起作用的宏,它用于检查“不应该”发生的情况。以下是一个内存复制程序,在运行过程中,如果assert的参数为假,那么程序就会中止(一般地还会出现提示对话,说明在什么地方引发了assert)。

       //复制不重叠的内存块

       void  memcpy(void *pvTo, void *pvFrom, size_t size)

{

              void *pbTo = (byte *) pvTo;

              void *pbFrom = (byte *) pvFrom;

              assert( pvTo != NULL  &&  pvFrom != NULL );

              while(size - - > 0 )

 &n

OLE 转贴(2007-06-03 18:24)
 Object Linking and Embedding,对象连接与嵌入,简称OLE技术。OLE不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为部件对象模型(Component Object Model),简称COM。OLE可以用来创建复合文档,复合文档包含了创建于不同源应用程序,有着不同类型的数据,因此它可以把文字、声音、图像、表格等组合在一起。

对象链接和嵌入。在客户应用程序间传输和共享信息的一组综合标准。允许创建带有指向应用程序的链接的混合文档以使用户修改时不必在应用程序间切换的协议。OLE基于组件对象模型(COM) 并允许开发可在多个应用程序间互操作的可复用即插即用对象。该协议已广泛用于商业上,在商业中电子表格、字处理程序、财务软件包和其他应用程序可以通过客户/服务器体系共享和链接单独的信息