C连载17-明示变量以及两种头文件举例
Posted ruigege0000
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C连载17-明示变量以及两种头文件举例相关的知识,希望对你有一定的参考价值。
一、常量和C预处理器
1.符号常量(symbolic constant)
- 编译程序的时候程序中的符号常量都会被实际字面量所替换,这一过程称为编译时替换
- 格式:末尾不加分号,中间不加等号,字面量可以是数字,字符,字符串等
#define CHANGLIANGNAME 890
2.const限定符
- C90标准增加了const关键字,用于限定一个变量为只读
const int MONTHS = 12;//MONTHS在程序中不可以更改,值为12
- const用起来比#define更加灵活;
- const类型限定符声明的是变量不是常量。
3. 明示常量
- C头文件limits.h和float.h分别提供了与整数类型和浮点类型大小限制相关的详细信息
- 又称为符号常量
- limits.h中的一些明示常量
明示常量 | 含义 |
---|---|
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类型最大值 |
- float.h中的一些明示常量(把明示常量名种的FLT分别替换成DBL和LDBL,即可分别表示double和long double
明示常量 | 含义 |
---|---|
FLT_MANT_DIG | float类型的尾数位数 |
FLT_DIG | float类型的最少有效数字位数(十进制) |
FLT_MIN_10_EXP | 带有全部有效数字的float类型的最小负指数(以10为底) |
FLT_MAX_10_EXP | float类型的最大正指数(以10为底) |
FLT_MIN | 保留全部精度的float类型最小整数 |
FLT_MAX | float类型的最大正数 |
FLT_EPSILON | 1.00和比1.00大的最小float类型值之间的差值 |
- 直接代码举例:
#include<stdio.h>
#include<limits.h> //整形限制
#include<float.h> //浮点型限制
#pragma warning(disable:4996)
int D17_defines(void) {
printf("Some number limits for this system:
");
printf("Biggest int: %d
", INT_MAX);
printf("Smallest long long: %lld
", LLONG_MIN);
printf("One byte = %d bits on this system.
", CHAR_BIT);
printf("Largest double:%e
", DBL_MAX);
printf("Smallest normal float:%e
", FLT_MIN);
printf("float precision = %d digits
", FLT_DIG);
printf("float epsilon = %e
", FLT_EPSILON);
return 0;
}
二、源码:
- D17_defines.c
- https://github.com/ruigege66/CPrimerPlus/blob/master/D17_defines.c
- CSDN:https://blog.csdn.net/weixin_44630050
- 博客园:https://www.cnblogs.com/ruigege0000/
- 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流
以上是关于C连载17-明示变量以及两种头文件举例的主要内容,如果未能解决你的问题,请参考以下文章
[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础