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...

常用ANSI C标准库函数

数学函数 应包含头文件 函数名 函数原型 功能 说明 abs int abs(int x) 计算并返回整数x的绝对值 acos d...

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提供的文件操作标准库函数

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

C99标准的新特性(相对于Ansi C)

C99是在C89(Ansi C)的基础上发展起来的,增加了基本数据类型,关键字 ,和一些系统函数等。   其实在初学阶段C89(ANSI C)和C99的区别是不易察觉的,所以不必太在意这个。 ...

ISO/ANSI C标准译文与注解 C/C++预处理部分

>   内容简介:本文档完整翻译了C标准(99版)中预处理和相关章节的内容,并在许多必要之处附加了注解和程序示例,以帮助读者理解标准原文,同时制作了详细的中英文索引备查。 译者:胡彦 出处:h...
  • le062
  • le062
  • 2011-09-28 14:58
  • 784

ANSI C99 标准

  • 2013-09-29 12:45
  • 1.35MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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