语言小结
  • program-language-note
  • contact
  • common
    • 代码风格
    • 概念语法
      • 类型
      • 注释
      • 字符
      • 语句
      • 操作符
      • 函数
        • 递归
    • 格式化参数
    • 源码结构
    • 数据结构
    • 名词
  • 电路
    • 内存地址
    • Untitled
    • Code
  • C
    • note
    • overview
      • helloworld.c
      • c标准
      • 关键字
      • tips
      • util.c
    • 语法
      • 函数
        • main
      • const
      • static
      • 作用域
    • 编译和运行
      • c代码内存模型
      • 预处理
        • include
        • define
    • 头文件
    • 基本数据类型
      • 整型
      • 枚举
      • 浮点型
      • 指针
      • 数组
      • 结构和联合
    • 指针&数组、指针&函数
    • API
    • 存储结构
    • 操作符
      • sizeof
    • typedef
    • 输入输出
    • 格式化参数
    • 左値右値
    • 性能思考
    • volatile
    • 字符串
      • find_char.c
    • 动态分配
      • alloc.h
      • alloc.c
      • alloc_usage.c
    • note
  • cpp
    • 资源
    • note
    • 数据结构
    • 智能指针
    • 编译过程
  • shell
    • usage
    • Untitled
  • Rust
    • overview
  • Lisp
    • Untitled
  • web
    • overview
      • index
      • 软件工具
      • ARIA规范
      • SEO
    • style
    • html
      • 标签、元素
        • 标签快记
        • 联系信息
        • 引用
        • 列表
        • 语言设置
        • meta
      • 页面结构
        • 图片
        • 视频
        • 引用css、js文件
      • 等价字符
      • 链接
        • 邮件
      • 表单
        • note
      • 表格
    • css
      • 字体
      • 布局
        • position
        • float
        • display
        • flexbox
    • js
    • note
  • java
    • note
    • java语言程序设计
    • 设计模式
      • 大话设计模式-吴强-2010
      • 大话设计模式-程杰
      • 设计模式-gof
      • 设计模式解析
      • 原则
      • 单例
    • java程序设计第10版-基础
    • java程序设计第10版-进阶
    • java核心技术第9版-I
    • jar包
    • 安全
    • 反射
  • python
    • note
    • index
    • 个人记忆点
    • 疑惑
    • simple
    • 精通Python爬虫框架scrapy
    • 语法
    • scrapy
      • notice
      • index
  • 汇编
    • Untitled
  • kotlin
    • index
    • note
    • by android
      • note
      • index
  • groovy
    • gradle
Powered by GitBook
On this page
  • 常量
  • stdlib.h
  • stddef.h
  • math.h
  • time.h
  • setjmp.h
  • signal.h
  • stdarg.h
  • assert.h
  • locale.h
  • limits.h
  • float.h
  • string.h
  • ctype.h

Was this helpful?

  1. C

API

只是保存容易想到,而又不用进入章节查看,以快速查询

常量

其他常量请在对应头文件里查看

NUL 字节指字节模式为全0的字节,即\0字符 NULL 指一个值是0的指针,所以NUL和NULL的值是一样的;NULL写在stdio.h;

NUL没有预定义,需要自定义

stdlib.h

常量:EXIT_SUCCESS, EXIT_FAILURE

算数

绝对值:abs ; labs

除法:div ; ldiv

随机数

伪随机数:rand(如需调整范围,用取模处理) ; srand

字符串转化为数字

基数为10:atoi ; atol

基数可以制定:strtol ; strtoul(而且第二个参数可以被返回不合法的字符)

终止执行

abort(SIGABORT) , atexit(注册退出函数), exit

环境

getenv

系统执行命令

system

排序和查找

qsort , bsearch

stddef.h

container_of :

math.h

mathcall.h

除了stdlib中的算数部分,剩余的数学函数声明都在这里。返回值和绝大部分参数都是double  

函数的参数不合法,称作domin error。此时函数返回一个编译器定义的错误值。并且在errno中存储EDOM値;函数的结果过大或者过小,称作range error。此时函数过大返回HUGE_VAL,过小返回0。可能会在errno中设置ERANGE。

三角函数

sin ; cos ; tan ; asin ; acos ; atan ; atan2

双曲函数

sinh ; cosh ; tanh

对数和指数函数

exp ; log ; log10

浮点表示形式

用于不兼容浮点格式的机器

指数和小数:frexp ; ldexp

整数和小数:modf

幂函数

pow ; sqrt

顶数、底数、绝对值和余数

floor ; ceil ; fabs ; fmod

字符串转化浮点

atof ; strtod

time.h

(机器无法提供,或者提供的値太大,返回-1)

偶尔会出现“闰秒”,所以秒数可能是61

处理器时间

程序执行之后的消耗时间:clock (需要除以CLOCKS_PER_SEC)

当天时间

time ;

日期和时间的转化

ctime (转化成字符串,内部可能是调用了asctime); difftime(计算差值)

gmtime (UTC\GMT); localtime

time_t 在很多编译器定义为32位,这样从1970到2038年的秒数会溢出

asctime, strftime

mktime(可以简单判断日期属于星期几)

setjmp.h

类似goto语句的机制

setjmp , longjmp

signal.h

SIG_ERR, SIG_DFL, SIG_IGN

(在我的环境下,信号是在signum-generic.h中,如SIGABORT)

raise (可以手动触发信号,主要用来测试,避免goto的效果)

void (*signal(int sig, void (* handler)(int)))(int)

sig_atomic_t

stdarg.h

可变参数

类型 va_list 和三个宏 : va_start , va_arg , va_end

arg参数需要用va_start进行初始化

assert.h

添加 -DNDEBUG 编译器命令或者在assert.h的文件中添加#define NDEBUG 可以消除所有断言

assert

locale.h

setlocale

数值和货币格式

localeconv

limits.h

数值的最大最小值

UCHAR_MAX
UINT_MAX

float.h

FLT_MAX,... //浮点数大小

string.h

strcoll (根据当前locale的LC_COLLATE); strxfrm ; strdup

memchr memcmp memcpy memmove memset

函数名

作用

备注

strlen()

长度

返回的是uint

strcpy()/strncpy

拷贝

注意越界,可以调用strcpy(..., size_t len)

strcat()/strncat

拼接

同上

strcmp()/strncmp

比较

字典序

strchr()

查找第一个匹配字符位置

strrchr()

查找最后一个匹配字符位置

strpbrk()

查找一组字符中第一个匹配字符位置

strstr()

查找字符串

strspn()

统计属于某一组字符中的个数,直至遇到不属于该组字符的字符为止

strcspn()

与上一个取反

strtrok()

去除分隔符

会修改源字符串

strerror()

获取操作系统errno对应的描述字符串

ctype.h

函数名

作用

备注

iscntrl

控制

isspace

空格,换页,换行,回车,制表符或垂直制表符

isdigit

0~9

isxdigit

0~9, a~f, A~F

islower

a~z

自己直接判断 >a,<z 的方式移植性不足

isupper

A~Z

isalpha

islower and isupper

isalnum

isalpha and isdigit

ispunct

标点符号,任何不属于数字或字母的图形字符(可打印字符)

isgraph

任何图形字符

isprint

任何可打印字符,包括图形字符和空白字符

tolower()

toupper()

Previous指针&数组、指针&函数Next存储结构

Last updated 5 years ago

Was this helpful?