ANSI C标准之值保留(value preserving)原则

原创 2017年01月02日 21:16:28

当把整形操作数混合使用时,结果可能是有符号数,也肯能是无符号数,取决于操作数的类型相对大小。---------《c专家编程》第一章

eg.

#define ARRAY_LENGTH(a) (sizeof(a)/sizeof(a[0]))
int main(int argc, const char * argv[])
{
    int a[5] = {1,2,3,4,5};
    int len = -1;
    
    if(len<ARRAY_LENGTH(a))cout<<"TRUE"<<endl;
    else cout<<"FALSE"<<endl;
    
    return 0;
}

程序运行结果“FALSE”,原因是sizeof()返回的为unsigned型,所以在if判断中,len被提升到unsigned型,-1的二进制形式FFFFFFFF,作为无符号型,表示32位最大的正整数,十进制43亿多,因此数组的长度,小于len返回false.




版权声明:本文为博主原创文章,未经博主允许不得转载。

C语言学习——ANSI C标准函数库

即C语言环境自带的变量和方法等 stdioh getchar和putchar gets和puts sprintf和sscanf stringh strcpy strlen strtok stdlibh...

Standard C 语言标准函数库(ANSI C)

C语言标准头 断言 字符类测试 (部分)库函数抛出的错误代码 浮点数运算 检测整型数据类型值范围 本土化 数学函数 “非局部跳转” 信号 可变参数列表 一些常数,类型和变量...

ANSI C提供的文件操作标准库函数

文件的打开操作 fopen 打开一个文件       文件的关闭操作 fclose关闭一个文件       文件的读写操作 fgetc从文件中读取一个字符            ...

常用ANSI C标准库函数

数学函数 应包含头文件 函数名 函数原型 功能 说明 abs int abs(int x) 计算并返回整数x的绝对值 acos d...
  • cclethe
  • cclethe
  • 2017年07月09日 13:24
  • 76

ANSI C标准

1978年,丹尼斯•里奇(Dennis Ritchie)和布莱恩•柯林汉(Brian Kernighan)合作出版了《C程序设计语言》的第一版。书中介绍的C语言标准也被C语言程式设计师称作“K&R C...

ANSI C的标准

蓦然回首C语言系列——ANSI C的标准前面的话现在的大学牲入校时,竟然都是用的VC6.0 这么复古的 IDE ,1989年的标准,细数到现在已经有大概30年了学习,当然要学习新的东西,要是现在还是学...

初识ANSI C标准

ANSI C 主要标准化了现存的实践, 同时增加了一些来自 C++ 的内容 (主要是函数原型) 并支持多国字符集 (包括备受争议的三字符序列)。 ANSI C 标准同时规定了 C 运行期库例程的标准...

C 语 言制定了一套 ANSI 标准

随着微型计算机的日益普及, 出现了许多 C 语言版本。 由于没有统一的标准,使得这些 C 语 言之间出现了一些不一致的地方。 为了改变这种情况, 美国国家标准研究所(ANSI)为 C 语 言制定了一套...

ANSI.C标准

  • 2014年05月13日 03:45
  • 5.18MB
  • 下载

ANSI C标准详解.PDF

  • 2007年05月10日 21:53
  • 24.77MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ANSI C标准之值保留(value preserving)原则
举报原因:
原因补充:

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