SCHAR_MAX/MIN和CHAR_MAX/MIN的区别是:SCHAR_MAX/MIN 特别强调的是“带符号”的字符的最大、最小数。CHAR_MAX/MIN则是没有声明带符号、却是指带符号的字符的最大、最小数。C和C++标准没有定义char应该有没有符号,甚至char/signed char/unsigned char可以是三种不同的类型。
一、SCHAR_MAX/MIN和CHAR_MAX/MIN的区别
SCHAR_MAX/MIN 特别强调的是“带符号”的字符的最大、最小数。CHAR_MAX/MIN则是没有声明带符号、却是指带符号的字符的最大、最小数。
C和C++标准没有定义char应该有没有符号,甚至char/signed char/unsigned char可以是三种不同的类型。只是要求char的编码和对齐必须和signed char/unsigned char两种中的一种一致。gcc的char是无符号的,但char和unsigned char也是两种不一样的类型; vc的char是有符号的,但char和signed char也是两种不一样的类型。
是,因为它们一定是0,而不是由实现定义。
所以,SCHAR_MAX和CHAR_MAX可以是不一致的。
延伸阅读:
二、c语言特点
C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。通过对C语言进行研究分析,总结出其主要特点如下:
(1)简洁的语言
C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
(2)具有结构化的控制语句
C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if…else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。
(3)丰富的数据类型
C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。
(4)丰富的运算符
C语言包含34个运算符,它将赋值、括号等均视作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。
(5)可对物理地址进行直接操作
C语言允许对硬件内存地址进行直接读写,以此可以实现汇编语言的主要功能,并可直接操作硬件。C语言不但具备高级语言所具有的良好特性,又包含了许多低级语言的优势,故在系统软件编程领域有着广泛的应用。