目录
零. 简介
一. assert
二. ctype
三. errno
四. float
五. limits
六. locale
C基础-标准库下连接: http://t.csdnimg.cn/LCcXR
C 语言标准库是一组由 ANSI C 标准规定的头文件和函数的集合,为 C 语言提供了常用的功能,以满足各种基本的编程需求。它可以在不同的操作系统和编译器下使用,保证了 C 语言的可移植性
assert
是 C 语言标准库 <assert.h>
中的一个宏,用于在程序调试阶段进行条件断言。
属性和特点:
assert
会输出一条错误信息,并终止程序的执行。NDEBUG
宏(通常通过编译器选项实现),assert
语句会被忽略,不会产生任何运行时开销。方法:assert(expression)
,其中 expression
是一个需要判断真假的表达式。
示例代码:
#include <assert.h>
#include<stdio.h>
int main() {
int num = 5;
// 断言 num 大于 0
assert(num > 0);
printf("num is positive\n");
return 0;
}
在上述代码中,如果 num
不大于 0 ,assert
就会触发错误,输出相关信息并终止程序。
在实际开发中,assert
常用于检查函数的前置条件、后置条件以及程序中的关键逻辑点,帮助开发者在调试阶段及时发现问题。
效果图:
成立
不成立
ctype.h
定义了一批 C 语言字符分类函数,用于测试字符是否属于特定的字符类别,如字母字符、控制字符等,既支持单字节(Byte)字符,也支持宽字符。
以下是一些常见的函数及其简介、返回值和参数说明:
以下是一个使用这些函数的例子:
#include <ctype.h>
#include <stdio.h>
int main() {
char ch;
printf("输入一个字符:");
scanf_s("%c", &ch);
if (isalnum(ch)) {
printf("%c 是字母或数字.", ch);
} else {
printf("%c 不是字母或数字.", ch);
}
putchar('\n');
return 0;
}
效果图
errno
是 C 语言标准库中用于表示错误代码的全局变量。
属性:
常见的错误代码:
示例代码:
#include <stdio.h>
#include <math.h>
#include <errno.h>
int main() {
double num = -1.0;
double result = sqrt(num);
if (errno == EDOM) {
printf("错误:参数不能为负数\n");
} else {
printf("平方根:%f\n", result);
}
return 0;
}
在上述示例中,对负数求平方根会导致错误,errno
被设置为 EDOM
,从而可以检测到错误并进行相应处理。
效果图
float.h
是 C 语言标准库中的一个头文件,它提供了有关浮点数类型(如 float
、double
和 long double
)的范围和精度的信息。
以下是一些常见的宏和示例代码:
#include <stdio.h>
#include <float.h>
int main() {
printf("Float 类型的最小值: %e\n", FLT_MIN);
printf("Float 类型的最大值: %e\n", FLT_MAX);
printf("Float 类型的精度(小数位数): %d\n", FLT_DIG);
printf("Double 类型的最小值: %e\n", DBL_MIN);
printf("Double 类型的最大值: %e\n", DBL_MAX);
printf("Double 类型的精度(小数位数): %d\n", DBL_DIG);
printf("Long Double 类型的最小值: %Le\n", LDBL_MIN);
printf("Long Double 类型的最大值: %Le\n", LDBL_MAX);
printf("Long Double 类型的精度(小数位数): %d\n", LDBL_DIG);
return 0;
}
通过这些宏,您可以在编程中根据实际需求合理地处理浮点数,以避免出现溢出、精度不足等问题。
limits.h
是 C 标准库中的头文件,用于定义各种整数类型的取值范围和限制。
属性:
以下是一个简单的示例代码,展示了如何使用 limits.h
中的宏:
#include <stdio.h>
#include <limits.h>
int main() {
printf("int 类型的最小值: %d\n", INT_MIN);
printf("int 类型的最大值: %d\n", INT_MAX);
printf("unsigned int 类型的最大值: %u\n", UINT_MAX);
printf("char 类型的最小值: %d\n", CHAR_MIN);
printf("char 类型的最大值: %d\n", CHAR_MAX);
return 0;
}
在这个示例中,我们使用了 limits.h
中定义的宏来输出不同整数类型的取值范围。
locale.h
是 C 标准库中的头文件,用于处理本地化相关的设置和操作。
本地化涉及到根据特定的地域或文化习惯来定制程序的行为,例如数字、货币、日期和时间的格式,字符编码,以及文本的排序规则等。
属性:
方法:
以下是一个简单的示例代码,展示了如何使用 locale.h
中的函数:
#include <stdio.h>
#include <locale.h>
int main() {
// 设置本地环境为系统默认
setlocale(LC_ALL, "");
struct lconv *locale_info = localeconv();
printf("本地货币符号: %s\n", locale_info->currency_symbol);
printf("小数点字符: %c\n", locale_info->decimal_point);
return 0;
}
请注意,上述示例的输出结果会因您的系统本地化设置而有所不同.
效果图: