c
cjdao
这个作者很懒,什么都没留下…
展开
-
从两道经典试题谈C/C++中联合体(union)的使用 10月 7th, 2006 by 宋宝华
试题一:编写一段程序判断系统中的CPU是Little endian还是Big endian模式?分析:作为一个计算机相关专业的人,我们应该在计算机组成中都学习过什么叫Little endian和Big endian。Little endian和Big endian是CPU存放数据的两种不同顺序。对于整型、长整型等数据类型,Big endian认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节);而Little endian则相反,它认为第一个字节是最低位字节(按照从低地址到转载 2010-08-05 20:54:00 · 858 阅读 · 0 评论 -
C语言中如何使用宏
<br />C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。 关于#和## 在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏: #define WARN_IF(EXP) / do{ if (EXP) / fprintf(stde转载 2010-08-06 13:13:00 · 372 阅读 · 0 评论 -
结构体初始化的方法
最近项目小组在去除代码中的warning,在修正代码的过程中看到了对结构体不正确的初始化方式:假设有一个如下的struct定义:struct astruct{ int a; int b;};struct astruct test = {0};即使astruct中都是基础类型的成员这样的初始化话也是不正确的。这种初始化仅仅是把a变量设置为了0,而未对b变量做初始化。产生这样错误的原因,大概是收到数组初始化的影响。数组是可以这么初始化话的,而且初始化的值只能是0!对结构体的初始化,可以有一下三种。s转载 2010-09-25 16:03:00 · 499 阅读 · 0 评论 -
typedef用法详解
typedef的一般形式为:typedef 类型 定义名;在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。其实,在C语言中声明变量的时候,有个存储类型指示符(storage-class-specifier),它包括我们熟悉的extern、static、auto、register。在不指定存储类型指示符的时候,编译器会根据约定自动取缺省值。另外,存储类型指示符的位置也是任意的(但要求在变量名和指针*之前),也就是说以下几行代码是转载 2010-10-19 16:03:00 · 324 阅读 · 0 评论 -
常量字符串为什么位于静态存储区?
<br />char *c="chenxi";<br />书上说: "chenxi"这个字符串被当作常量而且被放置在此程序的内存静态区。<br />那一般的int i=1;<br />1也是常量,为什么1就不被放置在此程序的内存静态区了呢?<br />请高手指点!<br />所有的字符窜常量都被放在静态内存区<br />因为字符串常量很少需要修改,放在静态内存区会提高效率<br />例:<br />char str1[] = "abc";<br />char str2[] = "abc";<br />con转载 2010-11-01 15:12:00 · 447 阅读 · 0 评论