`
wsql
  • 浏览: 11745947 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

输出整数类型边界值及其大小(K&R <The C programming language> 习题 2-1)

 
阅读更多
/**
 * auhtor: selfimpr
 * blog: http://blog.csdn.net/lgg201
 * mail: lgg860911@yahoo.com.cn
 * 输出整数类型边界值及其大小(K&R <The C programming language> exer 2-1)
 */

#include <stdio.h>
#include <limits.h>

/* 计算整数类型边界值 */
#define INTMIN(type)	(((type)-1 < (type)0) ? ((type)1 << (8 * sizeof(type) - (type)1)) : ((type)0))
#define INTMAX(type)	(((type)-1 < (type)0) ? ~((type)1 << (8 * sizeof(type) - (type)1)) : (~(type)0))

/* 直接输出头文件宏定义的类型边界值或其字面量值 */
#define PRINT_TYPE_SIZE_HEAD(type, type_modifier, min_macro, max_macro) \
	(printf("%-30s: size = %lu, min_value = %20" type_modifier \
		", max_value = %20" type_modifier "\n", #type, \
		sizeof(type), min_macro, max_macro))

/* 计算输出类型边界值 */
#define PRINT_TYPE_SIZE_CALC(type, type_modifier, min_macro, max_macro) \
	(PRINT_TYPE_SIZE_HEAD(type, type_modifier, INTMIN(type), INTMAX(type)))

/* 输出类型大小的入口宏 */
#define PRINT_TYPE_SIZE PRINT_TYPE_SIZE_HEAD

/**
 * 输出本机char和所有整型的类型长度及最大最小值
 */
int main(void) {
	PRINT_TYPE_SIZE(char, "d", CHAR_MIN, CHAR_MAX);
	PRINT_TYPE_SIZE(short int, "hd", SHRT_MIN, SHRT_MAX);
	PRINT_TYPE_SIZE(int, "d", INT_MIN, INT_MAX);
	PRINT_TYPE_SIZE(long int, "ld", LONG_MIN, LONG_MAX);
	PRINT_TYPE_SIZE(long long int, "lld", LLONG_MIN, LLONG_MAX);
	printf("\n");
	PRINT_TYPE_SIZE(signed char, "d", SCHAR_MIN, SCHAR_MAX);
	printf("\n");
	PRINT_TYPE_SIZE(unsigned char, "u", 0, UCHAR_MAX);
	PRINT_TYPE_SIZE(unsigned short int, "hu", 0, USHRT_MAX);
	PRINT_TYPE_SIZE(unsigned int, "u", 0, UINT_MAX);
	PRINT_TYPE_SIZE(unsigned long int, "lu", 0L, ULONG_MAX);
	PRINT_TYPE_SIZE(unsigned long long int, "llu", 0ULL, ULLONG_MAX);
}


分享到:
评论

相关推荐

    O()自旋链的非标准Bethe Ansatz方程

    / mn&gt; &lt;mi&gt; M &lt;/ mi&gt; &lt;mo&gt; + &lt;/ mo&gt; &lt;mn&gt; 1 &lt;/ mn&gt; &lt;mo&gt;)&lt;/ mo&gt; &lt;mo&gt;×&lt;/ mo&gt; &lt;mi&gt; O &lt;/ mi&gt; &lt;mo&gt;(&lt;/ mo&gt; &lt;mn&gt; 2 &lt;/ mn&gt; &lt;mi&gt; N &lt;/ mi&gt; &lt;mo&gt;-&lt;/ mo&gt; &lt;mn&gt; 2 &lt;/ mn&gt; &lt;mi&gt; M &lt;/ mi&gt; &lt; mo&gt;-&lt;/ mo&gt; &lt;mn&gt; 1 &lt;/ mn&gt; &lt;mo...

    e + e-质量差的宇宙学界

    我们证明了由于&lt;math altimg =“ si1.gif” xmlns =“ ... &lt;mi&gt; e &lt;/ mi&gt; &lt;/ mrow&gt; &lt;mrow&gt; &lt;mo&gt; + &lt;/ mo&gt; &lt;/ mrow&gt; &lt;/ msup&gt; &lt;msup&gt; &lt;mrow&gt; &lt;mi&gt; e &lt;/ mi&gt; &lt;/ mrow&gt; &lt; mrow&gt; &lt;mo&gt; − &lt;/ mo&gt; &lt;/ mrow&gt; &lt;/ msup&gt;

    对手性介子-核子拉格朗日函数低能常数的正约束

    &lt;mrow&gt; &lt;mi&gt; O上这些边界在数值上都得到了很好的尊重 &lt;/ mi&gt; &lt;mo Stretchy =“&gt;(&lt;/ mo&gt; &lt;msup&gt; &lt;mi&gt; p &lt;/ mi&gt; &lt;mn&gt; 3 &lt;/ mn&gt; &lt;/ msup&gt; &lt;mo Stretchy =“&gt;)&lt; / mo&gt; &lt;/ mrow&gt; &lt;/ math&gt;和&lt;math&gt; ...

    $$ N _ {\ mathrm {f}} = 3 $$ &lt;math&gt; <mrow> <msub> <mi> N </ mi> <mi> f </ mi>中的高能态的非摄动探索 </ msub> <mo> = </ mo> <mn> 3 </ mn> </ mrow> &lt;/ math&gt; QCD

    比例尺由有限的时空量设定,因此可以应用递归的有限尺寸技术,而Schrödinger泛函(SF)边界条件允许在手性极限中进行直接模拟。 与早期的研究相比,我们在统计和系统误差方面均得到了改善。 使用SF耦合隐式定义...

    形态熵可以使传统强子与奇异物脱离纠缠

    / msup&gt; &lt;mo&gt; = &lt;/ mo&gt; &lt;msup&gt; &lt;mrow&gt; &lt;mfrac&gt; &lt;mrow&gt; &lt;mn&gt; 1 &lt;/ mn&gt; &lt;/ mrow&gt; &lt;mrow&gt; &lt;mn&gt; 2 &lt;/ mn&gt; &lt;/ mrow&gt; &lt;/ mfrac&gt; &lt;/ mrow&gt; &lt;mrow&gt; &lt;mo&gt; + &lt;/ mo&gt; &lt;/ mrow&gt; &lt;/ msup&gt; &lt;/ msth&gt; &lt;/ math&gt;重子采用全息...

    动态边界条件下规范-希格斯统一的表示

    &lt;msup&gt; &lt;mrow&gt; &lt;mi&gt; M &lt;/ mi&gt; &lt;/ mrow&gt; &lt;mrow&gt; &lt;mn&gt; 4 &lt;/ mn&gt; &lt;/ mrow&gt; &lt;/ msup&gt; &lt;mo&gt;×&lt;/ mo&gt; &lt;msup&gt; &lt;mrow&gt; &lt;mi&gt; S &lt;/ mi&gt; &lt;/ mrow&gt; &lt;mrow&gt; &lt;mn&gt; 1 &lt;/ mn&gt; &lt;/ mrow&gt; &lt;/ msup&gt; &lt;mo Stretchy =“&gt; / &lt;/ mo&gt; &lt;msub&gt; ...

    LHC I和II数据对通用额外维数的界线

    &lt;msup&gt; &lt;mrow&gt; &lt;mi&gt; R &lt;/ mi&gt; &lt;/ mrow&gt; &lt;mrow&gt; &lt;mo&gt;-&lt;/ mo&gt; &lt;mn&gt; 1 &lt;/ mn&gt; &lt;/ mrow&gt; &lt;/ msup&gt; &lt;/ math&gt;)的理论的额外维度和截止尺度(Λ)。 mUED的特征是Kaluza-Klein(KK)粒子几乎发生了简并的质谱,因此...

    c = -2通用性类的精确有限尺寸校正和角自由能

    (&lt;/ mo&gt; &lt;mn&gt; 2 &lt;/ mn&gt; &lt;mi&gt; M &lt;/ mi&gt; &lt;mo&gt; − &lt;/ mo&gt; &lt;mn&gt; 1 &lt;/ mn&gt; &lt;mo Stretchy =“&gt;)&lt;/ mo&gt; &lt;mo&gt;×&lt;/ mo&gt; &lt;mo Stretchy =“&gt;(&lt;/ mo&gt; &lt;mn&gt; 2 &lt;/ mn&gt; &lt;mi&gt; N &lt;/ mi&gt; &lt;mo&gt;-&lt;/ mo&gt; &lt;mn&gt; 1 &lt; / mn&gt; &lt;mo ...

    具有重力作用的希格斯质量的真空稳定性边界

    &lt;msub&gt; &lt;mrow&gt; &lt;mi&gt; R &lt;/ mi&gt; &lt;/ mrow&gt; &lt;mrow&gt; &lt;mi&gt;ξ&lt;/ mi&gt; &lt;/ mrow&gt; &lt;/ msub&gt; &lt;/ math&gt;量规 -固定选择,发现结果与量规无关。 基于重力的弱耦合展开,并忽略了“整合”重力影响的可能的高维算子,我们研究...

    Option Explicit

    '控制控件的位置&lt;br&gt; &lt;br&gt; lblTitle.Top = lblTitle.Height&lt;br&gt; lblTitle.Left = (Me.Width - lblTitle.Width) / 2&lt;br&gt; &lt;br&gt; msgList.Top = lblTitle.Top + lblTitle.Height + lblTitle.Height / 2&lt;br&gt; msgList....

    最大&lt;math&gt; <mi> N </ mi> &lt;/ math&gt; $$ \ mathcal {N} $$-扩展的super-BMS3代数和广义3D重力解

    &lt;mi&gt; N &lt;/ mi&gt; &lt;/ math&gt; $$ \ mathcal {N} $$扩展超重力理论在3维上的变化,其中费米离子发生器在内部代数的真实但不一定是不可约表示下转换 。 我们获得了在零无穷大处保持渐近平坦解的边界条件的对称代数,...

    AdS2中的Toda理论和边界相关器的

    &lt;mo&gt;” &lt;/ mo&gt; &lt;mfrac&gt; &lt;mn&gt; 1 &lt;/ mn&gt; &lt;mn&gt; 2 &lt;/ mn&gt; &lt;/ mfrac&gt; &lt;mo&gt; − &lt;/ mo&gt; &lt;mtext&gt;维拉索罗&lt;/ mtext&gt; &lt;mo&gt;” &lt;/ mo&gt; &lt;/ math&gt; $$``\ frac {1} {2}-Virasoro“ $$对称性。一般的边界相关因子可望在合适的...

    2.2边界值法练习题

    这是一个边界值法练习题,在测试上可以用的上,开发者的一个小小的测试法。值得一学

    CSS简明教程

    &lt;br&gt;背景附件 &lt;br&gt;背景位置 &lt;br&gt;背景 &lt;br&gt;&lt;br&gt;&lt;br&gt;文本属性&lt;br&gt;&lt;br&gt;文字间隔 &lt;br&gt;字母间隔 &lt;br&gt;文字修饰 &lt;br&gt;纵向排列 &lt;br&gt;文本转换 &lt;br&gt;文本排列 &lt;br&gt;文本缩进 &lt;br&gt;&lt;br&gt;行高&lt;br&gt;&lt;br&gt;方框属性&lt;br&gt;&lt;br&gt;上边界 &lt;br&gt;...

    De Sitter沼泽地猜想的热力学解释

    &lt;msub&gt; &lt;mrow&gt; &lt;mi&gt; m &lt;/ mi&gt; &lt;/ mrow&gt; &lt;mrow&gt; &lt;mi&gt; Pl &lt;/ mi&gt; &lt;/ mrow&gt; &lt;/ msub&gt; &lt;mi&gt;∇&lt;/ mi&gt; &lt;mi&gt; V &lt;/ mi&gt; &lt;mo&gt; / &lt;/ mo&gt; &lt;mi&gt; V &lt;/ mi&gt; &lt;/ math&gt;等同于 正温度阶段的条件。 在经典系统中,正负温度相...

    Visual C++ 编程资源大全(英文源码 图形)

    1,01.zip&lt;br&gt;Displaying a 256 color bitmap&lt;br&gt;在程序中显示256色的位图(6KB)&lt;END&gt;&lt;br&gt;2,02.zip&lt;br&gt;Creating a bitmap object from a BMP file&lt;br&gt;从位图文件中创建位图对象(6KB)&lt;END&gt;&lt;br&gt;3,03.zip&lt;br&gt;An auto-...

    具有任意边界场的XXZ自旋链的热力学极限和表面能

    &lt;mi&gt;η&lt;/ mi&gt; &lt;mo&gt; = &lt;/ mo&gt; &lt;msub&gt; &lt;mrow&gt; &lt;mi&gt;η&lt;/ mi&gt; &lt;/ mrow&gt; &lt;mrow&gt; &lt;mi&gt; m &lt;/ mi&gt; &lt;/ mrow&gt; &lt;/ msub&gt; &lt;/ math &gt;,非对角的Bethe ansatz方程(BAE)可以简化为常规方程。 这使我们可以使用&lt;math ...

    程序设计:xml学习指南中文版

    目 录&lt;br&gt;前言&lt;br&gt;第一部分 XML概览&lt;br&gt;第1章 为什么要使用XML &lt;br&gt;1.1 XML的需要 &lt;br&gt;1.1.1 XML解决方案 &lt;br&gt;1.1.2 SGML、HTML和XML &lt;br&gt;1.2 XML的正式目标 &lt;br&gt;1.3 标准XML应用 &lt;br&gt;1.4 XML的实际应用 &lt;br&gt;第2章 ...

    拓扑顺序中边缘激励的缺陷Verlinde公式

    &lt;mrow&gt; &lt;mn&gt; 2 &lt;/ mn&gt; &lt;mo&gt; + &lt;/ mo&gt; &lt;mn&gt; 1 &lt;中,非手性玻色子拓扑阶中拓扑边界的边界激发或拓扑边界之间的交界处缺陷的问题。 / mn&gt; &lt;/ mrow&gt; &lt;/ math&gt;尺寸。 基于物理考虑,我们得出了一个公式,该公式...

    电子日记本的 NEO 窗口改进版

    电子日记本的 NEO 窗口制作得非常漂亮,网上流传一些制作方法,在研究之后, &lt;br&gt; 发觉使用 TImage 拼凑,以及 Unit 单元中“一大段”代码对于我这个对源码要求 &lt;br&gt; 干净整洁的人来说,总觉得不是个味。于是自己...

Global site tag (gtag.js) - Google Analytics