C連載17-明示變量以及兩種頭文件舉例

1、常量和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;
}

17.1

2、源碼:

相關文章
相關標籤/搜索