C语言头文件

系列文章目录

  1. C语言综述1
  2. C语言字符集2
  3. C语言词法元素3
  4. C语言表达式4
  5. C语言语句5
  6. C语言声明6
  7. C语言预处理指令7
  8. C语言头文件8

文章目录

  • 系列文章目录
  • 前言
  • 1、头文件
    • 1.1、


前言

蓝色问号代表个人理解   绿色代表来源   红色问号代表尚有疑问

为什么要读标准?因为全面、权威,所有答案都在标准里面!
哪些人适合浏览本系列文章?不清楚C语言程序的组成,以及每个组成部分的详细内容
持续更新,码字不易,求点赞收藏


1、头文件

1.1、

概述
程序诊断,在假设为假时输出诊断信息

用法
assert(表达式)
static_assert(表达式) C11
主要用于防御式编程

说明
assert 运行时断言,影响性能
#error 相当于预编译期断言,配合#ifdef、#ifndef使用
static_assert 编译期断言,必须是编译期可计算的表达式
#define NDEBUG 消除所有断言

1.2、

概述
测试和映射字符,实参都是int或者等于EOF

用法
C语言头文件_第1张图片

1.3、

概述
错误信息

用法
perror()输出错误信息
strerror()获取错误文本

说明
单线程程序一般展开为全局变量,多线程程序通过函数实现
任何一个错误都可能改变它的值,通常调用函数前将其置为0
C89、C99强制要求的三个宏:

  1. EDOM 域错误,数学函数超出定义域
  2. ERANGE 范围错误,数值溢出
  3. EILSEQ 非法序列,多字节字符和宽字符间转换时,遇到无效字符,比如wrtomb(buffer, L’\xfffff’,&mbs)

C11可移植的宏拓展到78个

1.4、

概述
本地化程序

用法
char* setlocale(int category, const char* locale); 设置地域
struct lconv *localeconv(void); 返回当前地域设置结构体

说明
C语言头文件_第2张图片

结构体lconv成员 C地域应当值 含义
char *decimal_point; /* “.” */ 非货币值的小数点字符
char *thousands_sep; /* “” */ 非货币值的千位分隔符
char *grouping; /* “” */ 非货币量中每组数字大小的字符串,值为0意味着前一个值将用于剩余分组
char *int_curr_symbol; /* “” */ 国际货币符号
char *currency_symbol; /* “” */ 货币本地符号
char *mon_decimal_point; /* “” */ 货币值的小数点符号
char *mon_thousands_sep; /* “” */ 货币值的千位分隔符
char *mon_grouping; /* “” */ 货币值每组数字大小
char *positive_sign; /* “” */ 表示正货币值的字符串
char *negative_sign; /* “” */ 表示负货币值的字符串
char int_frac_digits; /* CHAR_MAX */ 国际货币值中小数点后显示位数
char frac_digits; /* CHAR_MAX */ 货币值中小数点后显示位数
char p_cs_precedes; /* CHAR_MAX */ 值为1:货币本地符号在正货币值前,值为0:货币本地符号在正货币值后
char p_sep_by_space; /* CHAR_MAX */ 值为1:货币本地符号和正货币值用空格分隔,值为0:货币本地符号和正货币值不用空格分隔
char n_cs_precedes; /* CHAR_MAX */ 值为1:货币本地符号在负货币值前,值为0:货币本地符号在负货币值后
char n_sep_by_space; /* CHAR_MAX */ 值为1:货币本地符号和负货币值用空格分隔,值为0:货币本地符号和负货币值不用空格分隔
char p_sign_posn; /* CHAR_MAX */ 正货币值中正号位置
char n_sign_posn; /* CHAR_MAX */ 负货币值中负号位置

你可能感兴趣的:(手撕C标准,c语言,开发语言,后端)