climit 头文件的内容
int、long和long long
C++的short、int、long和long long类型通过使用不同数目的位来存储值(关于位的概念自行了解),最多能够表示4中不同的整数宽度。C++提供了一种灵活的标准,它确保了最小长度(从C语言借鉴而来),如下:
1. short 至少16位
2. int 至少与 short 一样长
3. long 至少 32 位,且至少与 int 一样长
4. long long 至少64位,且至少与 long 一样长 (此类型为 C++11 新增,旧的编译器可能不支持)
当前很多系统都使用最小长度,即short为16位,long为32位。这仍然为int提供了多种选择,其宽度可以是16位、24位或32位,同时又符合标准;甚至可以是64位,因为long 和 long long 至少长64位。通常,在老式的 IBM PC 的实现中,int的宽度为16位(与short相同),而在Windows XP及以上、Mac OS X、VAX和很多其它微型计算机的实现中为32位,与long相同。
要知道系统中整数的最大长度,可以在程序中使用 C++ 工具来检查类型的长度。首先,sizeof 运算符返回类型或变量的长度,单位为字节。需要注意的是,“字节”的含义依赖于实现,因此在一个系统中,两字节的int可能是16位,而在另一个系统中可能是32位。其次,头文件 climits(在老式实现中为 limits.h)中包含了关于整形限制的信息,它定义了表示各种限制的符号名称。例如,INT_MAX 为 int 的最大取值, CHAR_BIT 为字节的位数。
演示代码
#include <iostream>
#include <climits> int main()
{
using namespace std; int n_int = INT_MAX; //max value for integer number
short n_short = SHRT_MAX;
long n_long = LONG_MAX;
long long n_llong = LLONG_MAX; cout << "int is " << sizeof (int) << " bytes." << endl;
cout << "short is " << sizeof n_short << " bytes." << endl;
cout << "long is " << sizeof n_long << " bytes." << endl;
cout << "long long is " << sizeof n_llong << " bytes." << endl;
cout << endl; cout << "Maximum values: " << endl;
cout << "int: " << n_int << endl;
cout << "short: " << n_short << endl << "long: " << n_long << endl << "long long: " << n_llong << endl << endl; cout << "Minimum int value = " << INT_MIN << endl;
cout << "Bits per byte = " << CHAR_BIT << endl; return ;
}
运行结果如下(环境:Windows 7 64位,VC++ 2008 sp1, SDK 6.1):
int is 4 bytes.
short is 2 bytes.
long is 4 bytes.
long long is 8 bytes.
Maximum values:
int: 2147483647
short: 32767
long: 2147483647
long long: 9223372036854775807
Minimum int value = -2147483648
Bits per byte = 8
下面来看一下上述程序的主要编程特性
1. 运算符 sizeof 和头文件 climits
sizeof 运算符指出,在使用8位字节的系统中,int的长度为4个字节。可对类型名或变量名使用 sizeof 运算符。对类型名(如 int)使用 sizeof 运算符是,应将名称放在括号中;但对变量名括号是可选的。
头文件 climits 定义了符号常量来表示类型的限制。编译器厂商提供了 climits 文件,该文件指出了其编译器中的值。
下面将依次列举一些 climits 中的符号常量
- CHAR_BIT :char的位数
- CHAR_MAX :char的最大值
- CHAR_MIN :char的最小值
- SCHAR_MAX :signed char的最大值
- SCHAR_MIN :signed char的最小值
- UCHAR_MAX :unsigned char的最大值
- SHRT_MAX :short 的最大值
- SHRT_MIN :short 的最小值
- USHRT_MAX :unsigned short 的最大值
- INT_MAX :int 的最大值
- INT_MIN :int 的最小值
- UINT_MAX :unsigned int 的最大值
- LONG_MAX :long 的最大值
- LONG_MIN :long 的最小值
- ULONG_MAX :unsigned long 的最大值
- LLONG_MAX :long long 的最大值
- LLONG_MIN :long long 的最小值
- ULLONG_MAX :unsigned long long 的最大值
climit 头文件的内容的更多相关文章
- idea中自定义设置xml的头文件的内容
因为在idea中新建的xml默认的头文件,有时候并不是我们需要的这时候可以通过自定义来解决. 如搭建hibernate的实体类的映射xml. 首先 fiel→settings出现 如下框框 在上面搜索 ...
- 使用 MtVerify.h头文件 ,用的时候把他头文件的内容添加到项目
#include <windows.h> //windodws变量相关头文件 MtVerify.h的内容如下:#pragma comment( lib, "USER32&quo ...
- C/C++关于string.h头文件和string类
学习C语言时,用字符串的函数例如stpcpy().strcat().strcmp()等,要包含头文件string.h 学习C++后,C++有字符串的标准类string,string类也有很多方法,用s ...
- C++学习笔记(一):头文件和源文件
说明: 当一个源文件(a.cpp)要调用另一个源文件(b.cpp)定义的方法时,需要在a.cpp中写上这个方法的声明(只需要该方法的名称.返回值和参数,类似Java的接口): 如果每次调用其他文件的方 ...
- 编写自己的C头文件
1. 头文件用于声明而不是用于定义 当设计头文件时,记住定义和声明的区别是很重要的.定义只可以出现一次,而声明则可以出现多次. 下列语句是一些定义,所以不应该放在头文件里: extern ...
- C语言头文件引用
1,引用分为两种 firs:include<fileName.h> 引用系统头文件一般用<>. second:include"fileName.h" 引用自 ...
- [Swift]在Swift项目中创建桥接头文件,Swift文件和Objective-C文件相互调用
创建一个Swift项目[demo],以下内容Swift文件和Objective-C文件相互调用都是在Swift项目中. 一.Swift文件调用Objective-C文件 新建文件夹[SupportFi ...
- pycharm自动生成头文件注释
1.在file->settings->file and code templates->python script即可自定制pycharm创建文件自动生成的头文件注释信息 2.创建p ...
- C++笔记:头文件的作用和写法
from://http://ceeji.net/blog/c%E7%AC%94%E8%AE%B0%EF%BC%9A%E5%A4%B4%E6%96%87%E4%BB%B6%E7%9A%84%E4%BD% ...
随机推荐
- [转]最常见的20个jQuery面试问题及答案
毫无疑问,jQuery给了JavaScript急需的提振,这是一门如此有用,但同时总是常常被低估的语言. 在 jQuery 粉墨登场之前,我们曾经会写出冗长的JavaScript代码,不仅仅为更大型的 ...
- 关于java的上转型对象
1. 定义 如果B类是A类的子类或间接子类,当用B类创建对象b并将这个对象b的引用赋给A类对象a时,如: A a;a = new B();ORA a;B b = new B();a = b; 则称A类 ...
- 利用yield关键字输出杨辉三角
最近学习了下python,发现里面也有yield的用法,本来对C#里的yield不甚了解,但是通过学习python,对于C#的yield理解更深了!! 不多说了,小学生水平的表达能力伤不起.... 直 ...
- chapter8_4 错误处理
在Lua中,对于大多数程序都不用作任何错误处理,应用程序本身会负责这类问题. 所有的Lua活动都是由应用程序的一次调用开始的,这类调用要求Lua执行一个程序块. 执行过程中发生了错误,此调用会返回一个 ...
- jq 进度条插件
/***进度条*/var ProgressScrollBar = function (model) { this.defaults = { isCanMove: true,//是否启用拖动 conta ...
- 修改textField的placeholder的字体和颜色
textField.placeholder = @"username is in here!"; [textField setValue:[UIColor redColor] fo ...
- dbg调试
一.启动停止dbg dbg:tracer(). dbg:stop(). 二.跟踪常用函数 1.跟踪进程 dbg:p(PidSpec,TraceFlags). PidSpec Pid 一个特定进程ID ...
- erlang进程与操作系统线程
erlang多进程与多线程: 在erlang开发中,我们面对的最小执行单位是进程,当然这个进程并不是系统层面上的进程,也不是线程.而是基于erlang运行时系统的一个进程.那么erlang的多进程是如 ...
- go pkg
fmt Scanln用来读取输入数据 示例: package main import ( "fmt" "os" "time" ) func ...
- docker私服
1.下载私服镜像docker pull registry 2.启动容器docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registr ...