一、常量和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:\n");
printf("Biggest int: %d\n", INT_MAX);
printf("Smallest long long: %lld\n", LLONG_MIN);
printf("One byte = %d bits on this system.\n", CHAR_BIT);
printf("Largest double:%e\n", DBL_MAX);
printf("Smallest normal float:%e\n", FLT_MIN);
printf("float precision = %d digits\n", FLT_DIG);
printf("float epsilon = %e\n", 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/
- 歡迎關注微信公眾號:傅里葉變換,個人賬號,僅用于技術交流

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/3626.html
標籤:C
上一篇:LinuxKernel(一)
下一篇:羅馬數字轉整數C語言實作
