2011年9月2日

转载-include包含源文件引发的错误

摘要: 初级内容,高手略过,下面直奔主题-------------include指令会将包含的文件内容展开在include指令的位置,通常我们用这个指令引入各种头文件。某本“通俗易懂”的书在讲解这个预处理指令的时候举了一个包含.c文件的例子并因而被鄙视。那么为什么正常情况下不应该用include指令包含一个源文件呢?要弄明白这个问题需要对C语言的编译方式有所了解。C语言的编译方式是分离式的,分为两步(假设只有一个生成目标):1、将一个或多个源文件编译成可重定位的目标文件,其中每个文件是分别编译的。2、将1步生成的可重定位目标文件链接成一个可执行目标文件或者共享目标文件。假设foo1.c中用includ 阅读全文

posted @ 2011-09-02 23:30 沉沉-_- 阅读(954) 评论(0) 推荐(0) 编辑

volatile 的应用

摘要: C++中有多种存储器说明符,如auto、register、static、extern、mutable以及volatile等。如果从事嵌入式行业硬件等工作,则需要对volatile这个存储器说明符有深刻的理解,需要知道什么时候改用它声明变量。 volatile,意如其名:易变的,易挥发的。它表明:即使程序代码未对内存单元进行修改,其值也可能发生变化。对于学习软件的人来说,这是否不可理解,对于稍微有点硬件知识的人,则很好理解。例如:串口接收数据,则有可能是硬件接收数据而不是软件改变数据。或者两个程序共享数据,另一方程序可能单方面修改内存数据。所以需要重新读取内存的数据才能保证不出错误。而如果不.. 阅读全文

posted @ 2011-09-02 15:42 沉沉-_- 阅读(214) 评论(0) 推荐(0) 编辑

导航