摘要: c对同时包含有符号和无符号数表达式的处理是将有符号参数强制转换为无符号数,并假设两个数都是非负的来执行这个运算。先看一个简单的例子:-1<0U;对int型的-1来说,其二进制编码为32个1,转换为unsigned型则表示十进制4294967295所以最后的结果是0,这就跟直觉不符。有符号数到无符号数的隐式强制类型转换会导致与直觉不相符的行为,这样的错误很难被发现,主要是隐式转换是看不到的。我们再来看看书上给的另外一个例子:float sum_elements(float a[],unsigned length){ int i; float result = 0; for(i=0;i< 阅读全文
posted @ 2012-11-29 10:12 ideawu 阅读(731) 评论(0) 推荐(0) 编辑
摘要: 首先枚举是跟结构体一样,创建了一个新的数据类型。其次“枚举”这个词的意义体现在哪?数学里的枚举法就是把一个问题所有可能的解列举出来。因此我们在定义枚举类型的时候是要将其所有可能的取值列出来,其中这些取值都是以整数的形式表达。例如enum open_mode {input, output, append};这条语句定义了open_mode为枚举类型,注意open_mode是一个类型!!!然后我们根据这个类型定义一个枚举类型的变量:open_mode file_state =open;file_state的取值只能够在input,output,append这三个里面选择。感觉枚举类型就像是下拉菜单 阅读全文
posted @ 2012-11-29 09:37 ideawu 阅读(227) 评论(1) 推荐(0) 编辑