【C语言】C语言标准头文件

简介: 【C语言】C语言标准头文件

前言

为什么要学标准头文件:因为他是可以跨平台的,每个编译器都支持,所以我们需要学习。本节课讲的是<stdarg.h>/<stdbool.h>

<time.h>


提示:以下是本篇文章正文内容,下面案例可供参考

一、stdarg.h

含义:可变参数

示例代码

#include <stdio.h>
#include <stdarg.h>
void fun(int a, ...)
{
  //创建一个valist
  va_list v;
  //将a个参数装进v中
  va_start(v, a);
  //va_copy(valist _1,va_list _2);//复制宏
  //取变量   1.va_list  2.要的类型
  char c = va_arg(v, char);
  int aa = va_arg(v, int);
  //释放va_list
  va_end(v);
}
int main()
{
  fun('a', 18);
  return 0;
}

我们的printf()scanf_s()都是可变参数

二、stdbool.h

在我们原生C中没有bool等类型的

只有C++中有,为了移植性所以有这个头文件

头文件源码:

#ifndef _STDBOOL//防止重复包含
#define _STDBOOL
#define __bool_true_false_are_defined 1
#ifndef __cplusplus
//主体
#define bool  _Bool//原生C Bool类型是_Bool 通过宏定义改成和C++一样的格式
//预处理false 和 true
#define false 0
#define true  1
#endif /* __cplusplus */
#endif /* _STDBOOL */

三、time.h

1).time()

获取系统时间

用法:如果参数为NULL则时间戳通过返回值返回

如果不为NULL,则需要填写时间参数

时间类型:time_t—>__Int64

time_t t = time(NULL);
time_t tt;
time(&tt);

2).ctime与ctime_s

作用:将 time_t 转成日历时间的文本显示

ctime函数原型: char* ctime(time_t const* const _Time);

ctime_s函数原型:在基础上取出const char *,变成返回值

time_t t=time(NULL);
const char *Time;
ctime(&t,Time);

3).difftime()

作用:计算2个时间的时间差

函数原型:double difftime(time_t const _Time1,time_t const _Time2)

time_t t=time(NULL);
time_t tt=time(NULL);
double difftime_t = difftime(t,tt);

4).clock

作用:用来获取当前程序占用了 CPU 多长时间,非精确,精准到ms。

函数原型:clock_t clock(void);

clock_t c_t = clock();
//查看min/h 相对应的进行装化
clock_t c_t = clock()/60;

5).localtime()

作用:将 time_t 的时间转换成 struct tm 类型的时间。

结构体定义:

struct tm
{
    int tm_sec;   // seconds after the minute - [0, 60] including leap second
    int tm_min;   // minutes after the hour - [0, 59]
    int tm_hour;  // hours since midnight - [0, 23]
    int tm_mday;  // day of the month - [1, 31]
    int tm_mon;   // months since January - [0, 11]
    int tm_year;  // years since 1900
    int tm_wday;  // days since Sunday - [0, 6]
    int tm_yday;  // days since January 1 - [0, 365]
    int tm_isdst; // daylight savings time flag
};

怎么使用?使用函数localtime

函数原型:struct tm* localtime(time_t const* const _Time)


只需要用一个个tm的结构体指针接住他就行了,参数为time_t*


他也有_s版本,只是tm为参数,返回值为error


6).asctime

作用:将tm的结构体转换成文本形式

函数原型:char* asctime(struct tm const* _Tm);

asctime_s在基础上把返回值移动到参数1,参数2为参数1的大小,返回值变error_t

其余不变


7).mktime

作用:将tm类型转换成time_t类型

函数原型:time_t mktime(struct tm* const _Tm)


相关文章
|
11月前
|
编译器 程序员 C语言
26 C语言 - 头文件
26 C语言 - 头文件
53 0
|
2月前
|
C语言
【C语言小知识】备选拼写:iso646.h头文件
【C语言小知识】备选拼写:iso646.h头文件
|
5月前
|
编译器 API C语言
C语言头文件
C语言头文件
58 0
|
5月前
|
编译器 C语言
C语言基础专题 - 头文件引用
C语言基础专题 - 头文件引用
130 0
|
5月前
|
C语言
详解C语言可变参数列表(stdarg头文件及其定义的宏)
详解C语言可变参数列表(stdarg头文件及其定义的宏)
83 0
|
5月前
|
编译器 C语言
C语言标准头文件 如何打印“hello,world”
C语言标准头文件 如何打印“hello,world”
|
5月前
|
前端开发 算法 JavaScript
【新手解答3】深入探索 C 语言:头文件提供必要的接口、源文件保持实现细节的私有性 + 进一步学习的方向 + 如何快速编写程序并最终能制作小游戏
【新手解答3】深入探索 C 语言:头文件提供必要的接口、源文件保持实现细节的私有性 + 进一步学习的方向 + 如何快速编写程序并最终能制作小游戏
122 0
|
5月前
|
存储 编译器 程序员
【新手解答2】深入探索 C 语言:变量名、变量 + 函数声明 vs 函数定义 + main的声明 + 头文件和源文件的关系
【新手解答2】深入探索 C 语言:变量名、变量 + 函数声明 vs 函数定义 + main的声明 + 头文件和源文件的关系
91 0
|
5月前
|
存储 编译器 程序员
【新手解答1】深入探索 C 语言:变量名、形参 + 主调函数、被调函数 + 类和对象 + 源文件(.c 文件)、头文件(.h 文件)+ 库
【新手解答1】深入探索 C 语言:变量名、形参 + 主调函数、被调函数 + 类和对象 + 源文件(.c 文件)、头文件(.h 文件)+ 库
111 0
|
5月前
|
存储 C语言
C语言之“可变参数与<stdarg.h>头文件”
C语言之“可变参数与<stdarg.h>头文件”