C语言函数大全中,v开头函数有哪些,能否一一列举?

2026-04-12 00:171阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3990个文字,预计阅读时间需要16分钟。

C语言函数大全中,v开头函数有哪些,能否一一列举?

C语言函数全面+本节介绍C语言函数+v+开头的函数+1.+va_start+1.1+函数说明+函数声明+函数功能void va_start(va_list ap, last_arg);+用于初始化一个va_list类型的变量ap,使其指向可变参数列表中的最后一个固定参数last_arg。

C语言函数大全

本篇介绍C语言函数大全-- v 开头的函数

1. va_start

1.1 函数说明
函数声明 函数功能 void va_start(va_list ap, last_arg); 用于初始化一个 va_list 类型的变量,使其指向可变参数列表中的第一个参数

参数:

  • ap: 一个指向 va_list 类型的变量的指针,表示要初始化的可变参数列表
  • last_arg: 一个指向最后一个固定参数的指针,用于确定可变参数列表的起始位置
1.2 演示示例

#include <stdio.h> #include <stdarg.h> void print_args(int count, ...) { va_list args1, args2; int i; va_start(args1, count); /* 初始化可变参数列表 */ /* 复制可变参数列表 */ va_copy(args2, args1); for (i = 0; i < count; i++) { int arg1 = va_arg(args1, int); /* 获取下一个参数 */ int arg2 = va_arg(args2, int); printf("arg[%d] = %d %d\n", i, arg1, arg2); } va_end(args2); /* 清理复制的可变参数列表 */ va_end(args1); /* 清理原始可变参数列表 */ } int main() { print_args(3, 10, 20, 30); return 0; }

在上面的示例代码中,

  • 我们首先调用自定义的 print_args() 函数,并传入了 4 个入参,第一个为 可变参数的个数,后面三个为具体的整数型可变参数。
  • 然后在print_args() 函数内部,我们首先定义了两个 va_list 类型的变量 args1args2,并使用 va_start() 函数初始化 args1 变量。
  • 接着,我们使用 va_copy() 函数将 args1 复制到 args2 中,并使用 for 循环和 两个 va_arg() 函数来分别访问这两个可变参数列表,并依次输出每个参数的值。
  • 最后,我们使用两次 va_end() 函数来清理这两个可变参数列表。
1.3 运行结果

C语言函数大全中,v开头函数有哪些,能否一一列举?

2. va_arg

2.1 函数说明
函数声明 函数功能 type va_arg(va_list ap, type); 用于从可变参数列表中获取下一个参数,并将其转换为指定的类型

参数:

  • ap : 一个指向 va_list 类型的变量的指针,表示要访问的可变参数列表
  • type : 一个类型说明符,表示下一个参数的类型
2.2 演示示例

可参考 1.2 中所示

3. va_copy

3.1 函数说明
函数声明 函数功能 void va_copy(va_list dest, va_list src); 用于将一个 va_list 类型的变量复制到另一个变量中

参数:

  • dest : 一个指向 va_list 类型的变量的指针,表示目标可变参数列表
  • src : 另一个指向 va_list 类型的变量的指针,表示要被复制的可变参数列表
3.2 演示示例

可参考 1.2 中所示

4. va_end

4.1 函数说明
函数声明 函数功能 void va_end(va_list ap); 用于清理一个 va_list 类型的变量

参数:

  • ap: 一个指向 va_list 类型的变量的指针,表示要清理的可变参数列表
4.2 演示示例

可参考 1.2 中所示

5. vfprintf

5.1 函数说明
函数声明 函数功能 int vfprintf(FILE *stream, const char *format, va_list arg); 用于将格式化输出写入到指定的文件流中

参数:

  • stream : 要写入数据的文件流指针
  • format : 格式化字符串,用来指定要输出的内容和格式
  • arg : 一个 va_list 类型的变量,包含了可变参数列表
5.2 演示示例

#include <stdio.h> #include <stdlib.h> #include <stdarg.h> FILE *fp; int vfpf(const char *fmt, ...) { va_list argptr; int cnt; va_start(argptr, fmt); cnt = vfprintf(fp, fmt, argptr); va_end(argptr); return cnt; } int main() { int inumber; float fnumber; char string[4]; fp = tmpfile(); if (fp == NULL) { perror("tmpfile() call"); exit(1); } vfpf("%d %f %s", 30, 90.0, "abc"); rewind(fp); fscanf(fp,"%d %f %s", &inumber, &fnumber, string); printf("%d %.2f %s\n", inumber, fnumber, string); fclose(fp); return 0; }

在上述的示例代码中,

  • 我们首先声明了三个变量 inumberfnumberstring
  • 然后,调用 tmpfile() 函数创建一个临时文件,并将返回的文件指针赋值给全局变量 fp。如果创建文件失败,则打印错误信息并退出程序;
  • 接着,调用自定义的 vfpf() 函数来向临时文件中写入数据。它里面使用 vfprintf() 函数将格式化输出写入到一个文件流中;
  • 再然后,调用 rewind() 函数将文件指针重新定位到文件开头;
  • 再接着使用 fscanf() 函数从文件中读取数据,并使用 printf() 函数中输出从文件中读取的数据
  • 最后调用 fclose() 函数关闭文件指针,并结束程序
5.3 运行结果

6. vfscanf

6.1 函数说明
函数声明 函数功能 int vfscanf(FILE *stream, const char *format, va_list arg); 用于将指定文件流中的格式化输入读取到指定变量中

参数:

  • stream : 要读取数据的文件流指针
  • format : 格式化字符串,用来指定要读取的内容和格式
  • arg : 一个 va_list 类型的变量,包含了可变参数列表

返回值:

  • 如果读取成功,返回成功读取并赋值给变量的项目数;
  • 如果出现错误,则返回负数。
6.2 演示示例

#include <stdio.h> #include <stdlib.h> #include <stdarg.h> FILE *fp; int vfsf(const char *fmt, ...) { va_list argptr; int cnt; va_start(argptr, fmt); cnt = vfscanf(fp, fmt, argptr); va_end(argptr); return cnt; } int main() { int inumber; float fnumber; char string[4]; fp = tmpfile(); if (fp == NULL) { perror("tmpfile() call"); exit(1); } fprintf(fp, "%d %f %s", 30, 90.0, "abc"); rewind(fp); vfsf("%d %f %s", &inumber, &fnumber, string); printf("%d %.2f %s\n", inumber, fnumber, string); fclose(fp); return 0; }

在上面的示例代码中,

  • 我们首先声明了三个变量 inumberfnumberstring
  • 然后,程序调用 tmpfile() 函数创建一个临时文件,并将返回的文件指针赋值给全局变量 fp。如果创建文件失败,则打印错误信息并退出程序;
  • 接着,我们使用 fprintf() 函数将三个数据(一个整型数字、一个浮点数和一个字符串)写入该文件中;
  • 再然后,调用 rewind() 函数将文件指针重新定位到文件开头;
  • 再接着,我们调用自定义的 vfsf() 函数,里面使用 vfscanf() 函数从文件中读取数据;
  • 最后,打印出从文件中读取的数据,并关闭临时文件,退出程序。
6.3 运行结果

7. vprintf

7.1 函数说明
函数声明 函数功能 int vprintf(const char *format, va_list ap); 它使用格式化字符串 format 中的指令来指定输出的格式,并将后续的可变参数按照指令指定的格式输出到标准输出流 stdout

参数:

  • format : 格式化字符串,用来指定要打印的内容和格式
  • va_list : 一个 va_list 类型的变量,包含了可变参数列表
7.2 演示示例

#include <stdio.h> #include <stdarg.h> void myprint(const char *format, ...) { va_list args; va_start(args, format); vprintf(format, args); va_end(args); } int main() { int a = 10; float b = 3.14; char s[] = "hello"; myprint("a=%d, b=%.2f, s=%s\n", a, b, s); return 0; }

在上面的示例代码中,

  • 我们首先定义了三个变量 整形 a 、浮点型 b 和 字符数组 s
  • 然后,调用自定义的 myprint() 函数将这些变量的值输出到标准输出流 stdout 中; 在 myprint() 函数中,
    • 我们首先使用 va_start() 宏初始化一个 va_list 变量 args
    • 然后调用 vprintf() 函数将格式化字符串和参数列表传递给该函数进行输出;
    • 最后使用 va_end() 宏清理 args 变量。
  • 最后结束程序。
7.3 运行结果

8. vscanf

8.1 函数说明
函数声明 函数功能 int vscanf(const char *format, va_list arg); 它使用格式化字符串 format 中的指令来指定输入的格式,并从标准输入流 stdin 中读取数据,并将数据按照指令指定的格式存储到相应的变量中

参数:

  • format : 格式化字符串,用来指定要读取的内容和格式
  • va_list : 一个 va_list 类型的变量,包含了可变参数列表
8.2 演示示例

#include <stdio.h> #include <stdarg.h> void myscan(const char *format, ...) { va_list args; va_start(args, format); vscanf(format, args); va_end(args); } int main() { int a; float b; char s[10]; myscan("%d%f%s", &a, &b, s); printf("a=%d, b=%.2f, s=%s\n", a, b, s); return 0; }

在上面的示例代码中,

  • 我们首先定义了三个变量 整形 a 、浮点型 b 和 字符数组 s
  • 然后,调用自定义的 myscan() 函数从标准输入流 stdin 中读取数据,并将数据存储到这些变量中 在 myscan() 函数中,
    • 我们首先使用 va_start() 宏初始化一个 va_list 变量 args
    • 然后调用 vscanf() 函数将格式化字符串和参数列表传递给该函数进行输入;
    • 最后使用 va_end() 宏清理 args 变量。
  • 最后我们打印输出上面输入的两个变量的数据,并结束程序。
8.3 运行结果

9. vsprintf

9.1 函数说明
函数声明 函数功能 int vsprintf(char *str, const char *format, va_list ap); 它使用格式化字符串 format 中的指令来指定输出的格式,并将后续的可变参数按照指令指定的格式输出到字符数组 str 中。

参数:

  • str: 用来存储格式化数据的字符数组的指针
  • format : 格式化字符串,用来指定要输出的内容和格式
  • va_list : 一个 va_list 类型的变量,包含了可变参数列表
9.2 演示示例

#include <stdio.h> #include <stdarg.h> void myprint(const char *format, ...) { char buffer[100]; va_list args; va_start(args, format); vsprintf(buffer, format, args); va_end(args); printf("%s", buffer); } int main() { int a = 10; float b = 3.1415; char s[] = "huazie"; myprint("a=%d, b=%.4f, s=%s\n", a, b, s); return 0; }

在上面的示例代码中,

  • 我们首先定义了三个变量 整形 a 、浮点型 b 和 字符数组 s
  • 然后,调用自定义的 myprint() 函数将格式化字符串和这些变量的值输出到字符数组 buffer 中,并打印输出字符数组 buffer ; 在 myprint() 函数中,
    • 我们首先使用 va_start() 宏初始化一个 va_list 变量 args
    • 然后调用 vsprintf() 函数将格式化字符串和参数列表传递给该函数进行输出,并将输出结果存储到 buffer 数组中;
    • 最后使用 va_end() 宏清理 args 变量。
  • 最后结束程序。
9.3 运行结果

10. vsscanf

10.1 函数说明
函数声明 函数功能 int vsscanf(const char *str, const char *format, va_list ap); 它使用格式化字符串 format 中的指令来指定输入的格式,并从字符数组 str 中读取数据,并将数据按照指令指定的格式存储到相应的变量中

参数:

  • str: 用来读取的格式化数据的字符数组的指针
  • format : 格式化字符串,用来指定要读取的内容和格式
  • va_list : 一个 va_list 类型的变量,包含了可变参数列表
10.2 演示示例

#include <stdio.h> #include <stdarg.h> void myscan(const char *str, const char *format, ...) { va_list args; va_start(args, format); vsscanf(str, format, args); va_end(args); } int main() { int a; float b; char s[10]; char buffer[] = "10 3.1415 huazie"; myscan(buffer, "%d%f%s", &a, &b, s); printf("a=%d, b=%.4f, s=%s\n", a, b, s); return 0; }

在上面的示例代码中,

  • 我们首先定义了四个变量 整形 a 、浮点型 b 、 字符数组 s 和 字符数组 buffer
  • 然后,调用自定义的 myscan() 函数从字符数组 buffer 中读取数据,并将数据存储到另外 3 个变量中; 在 myscan() 函数中,
    • 我们首先使用 va_start() 宏初始化一个 va_list 变量 args
    • 然后调用 vsscanf() 函数将字符数组 buffer 和格式化字符串以及参数列表传递给该函数进行输入,并将数据存储到相应的变量中;
    • 最后使用 va_end() 宏清理 args 变量。
  • 最后我们打印输出上面从字符数组 buffer 中读取并输入的三个变量的数据,并结束程序。
10.3 运行结果

参考

  1. [API Reference Document]

本文共计3990个文字,预计阅读时间需要16分钟。

C语言函数大全中,v开头函数有哪些,能否一一列举?

C语言函数全面+本节介绍C语言函数+v+开头的函数+1.+va_start+1.1+函数说明+函数声明+函数功能void va_start(va_list ap, last_arg);+用于初始化一个va_list类型的变量ap,使其指向可变参数列表中的最后一个固定参数last_arg。

C语言函数大全

本篇介绍C语言函数大全-- v 开头的函数

1. va_start

1.1 函数说明
函数声明 函数功能 void va_start(va_list ap, last_arg); 用于初始化一个 va_list 类型的变量,使其指向可变参数列表中的第一个参数

参数:

  • ap: 一个指向 va_list 类型的变量的指针,表示要初始化的可变参数列表
  • last_arg: 一个指向最后一个固定参数的指针,用于确定可变参数列表的起始位置
1.2 演示示例

#include <stdio.h> #include <stdarg.h> void print_args(int count, ...) { va_list args1, args2; int i; va_start(args1, count); /* 初始化可变参数列表 */ /* 复制可变参数列表 */ va_copy(args2, args1); for (i = 0; i < count; i++) { int arg1 = va_arg(args1, int); /* 获取下一个参数 */ int arg2 = va_arg(args2, int); printf("arg[%d] = %d %d\n", i, arg1, arg2); } va_end(args2); /* 清理复制的可变参数列表 */ va_end(args1); /* 清理原始可变参数列表 */ } int main() { print_args(3, 10, 20, 30); return 0; }

在上面的示例代码中,

  • 我们首先调用自定义的 print_args() 函数,并传入了 4 个入参,第一个为 可变参数的个数,后面三个为具体的整数型可变参数。
  • 然后在print_args() 函数内部,我们首先定义了两个 va_list 类型的变量 args1args2,并使用 va_start() 函数初始化 args1 变量。
  • 接着,我们使用 va_copy() 函数将 args1 复制到 args2 中,并使用 for 循环和 两个 va_arg() 函数来分别访问这两个可变参数列表,并依次输出每个参数的值。
  • 最后,我们使用两次 va_end() 函数来清理这两个可变参数列表。
1.3 运行结果

C语言函数大全中,v开头函数有哪些,能否一一列举?

2. va_arg

2.1 函数说明
函数声明 函数功能 type va_arg(va_list ap, type); 用于从可变参数列表中获取下一个参数,并将其转换为指定的类型

参数:

  • ap : 一个指向 va_list 类型的变量的指针,表示要访问的可变参数列表
  • type : 一个类型说明符,表示下一个参数的类型
2.2 演示示例

可参考 1.2 中所示

3. va_copy

3.1 函数说明
函数声明 函数功能 void va_copy(va_list dest, va_list src); 用于将一个 va_list 类型的变量复制到另一个变量中

参数:

  • dest : 一个指向 va_list 类型的变量的指针,表示目标可变参数列表
  • src : 另一个指向 va_list 类型的变量的指针,表示要被复制的可变参数列表
3.2 演示示例

可参考 1.2 中所示

4. va_end

4.1 函数说明
函数声明 函数功能 void va_end(va_list ap); 用于清理一个 va_list 类型的变量

参数:

  • ap: 一个指向 va_list 类型的变量的指针,表示要清理的可变参数列表
4.2 演示示例

可参考 1.2 中所示

5. vfprintf

5.1 函数说明
函数声明 函数功能 int vfprintf(FILE *stream, const char *format, va_list arg); 用于将格式化输出写入到指定的文件流中

参数:

  • stream : 要写入数据的文件流指针
  • format : 格式化字符串,用来指定要输出的内容和格式
  • arg : 一个 va_list 类型的变量,包含了可变参数列表
5.2 演示示例

#include <stdio.h> #include <stdlib.h> #include <stdarg.h> FILE *fp; int vfpf(const char *fmt, ...) { va_list argptr; int cnt; va_start(argptr, fmt); cnt = vfprintf(fp, fmt, argptr); va_end(argptr); return cnt; } int main() { int inumber; float fnumber; char string[4]; fp = tmpfile(); if (fp == NULL) { perror("tmpfile() call"); exit(1); } vfpf("%d %f %s", 30, 90.0, "abc"); rewind(fp); fscanf(fp,"%d %f %s", &inumber, &fnumber, string); printf("%d %.2f %s\n", inumber, fnumber, string); fclose(fp); return 0; }

在上述的示例代码中,

  • 我们首先声明了三个变量 inumberfnumberstring
  • 然后,调用 tmpfile() 函数创建一个临时文件,并将返回的文件指针赋值给全局变量 fp。如果创建文件失败,则打印错误信息并退出程序;
  • 接着,调用自定义的 vfpf() 函数来向临时文件中写入数据。它里面使用 vfprintf() 函数将格式化输出写入到一个文件流中;
  • 再然后,调用 rewind() 函数将文件指针重新定位到文件开头;
  • 再接着使用 fscanf() 函数从文件中读取数据,并使用 printf() 函数中输出从文件中读取的数据
  • 最后调用 fclose() 函数关闭文件指针,并结束程序
5.3 运行结果

6. vfscanf

6.1 函数说明
函数声明 函数功能 int vfscanf(FILE *stream, const char *format, va_list arg); 用于将指定文件流中的格式化输入读取到指定变量中

参数:

  • stream : 要读取数据的文件流指针
  • format : 格式化字符串,用来指定要读取的内容和格式
  • arg : 一个 va_list 类型的变量,包含了可变参数列表

返回值:

  • 如果读取成功,返回成功读取并赋值给变量的项目数;
  • 如果出现错误,则返回负数。
6.2 演示示例

#include <stdio.h> #include <stdlib.h> #include <stdarg.h> FILE *fp; int vfsf(const char *fmt, ...) { va_list argptr; int cnt; va_start(argptr, fmt); cnt = vfscanf(fp, fmt, argptr); va_end(argptr); return cnt; } int main() { int inumber; float fnumber; char string[4]; fp = tmpfile(); if (fp == NULL) { perror("tmpfile() call"); exit(1); } fprintf(fp, "%d %f %s", 30, 90.0, "abc"); rewind(fp); vfsf("%d %f %s", &inumber, &fnumber, string); printf("%d %.2f %s\n", inumber, fnumber, string); fclose(fp); return 0; }

在上面的示例代码中,

  • 我们首先声明了三个变量 inumberfnumberstring
  • 然后,程序调用 tmpfile() 函数创建一个临时文件,并将返回的文件指针赋值给全局变量 fp。如果创建文件失败,则打印错误信息并退出程序;
  • 接着,我们使用 fprintf() 函数将三个数据(一个整型数字、一个浮点数和一个字符串)写入该文件中;
  • 再然后,调用 rewind() 函数将文件指针重新定位到文件开头;
  • 再接着,我们调用自定义的 vfsf() 函数,里面使用 vfscanf() 函数从文件中读取数据;
  • 最后,打印出从文件中读取的数据,并关闭临时文件,退出程序。
6.3 运行结果

7. vprintf

7.1 函数说明
函数声明 函数功能 int vprintf(const char *format, va_list ap); 它使用格式化字符串 format 中的指令来指定输出的格式,并将后续的可变参数按照指令指定的格式输出到标准输出流 stdout

参数:

  • format : 格式化字符串,用来指定要打印的内容和格式
  • va_list : 一个 va_list 类型的变量,包含了可变参数列表
7.2 演示示例

#include <stdio.h> #include <stdarg.h> void myprint(const char *format, ...) { va_list args; va_start(args, format); vprintf(format, args); va_end(args); } int main() { int a = 10; float b = 3.14; char s[] = "hello"; myprint("a=%d, b=%.2f, s=%s\n", a, b, s); return 0; }

在上面的示例代码中,

  • 我们首先定义了三个变量 整形 a 、浮点型 b 和 字符数组 s
  • 然后,调用自定义的 myprint() 函数将这些变量的值输出到标准输出流 stdout 中; 在 myprint() 函数中,
    • 我们首先使用 va_start() 宏初始化一个 va_list 变量 args
    • 然后调用 vprintf() 函数将格式化字符串和参数列表传递给该函数进行输出;
    • 最后使用 va_end() 宏清理 args 变量。
  • 最后结束程序。
7.3 运行结果

8. vscanf

8.1 函数说明
函数声明 函数功能 int vscanf(const char *format, va_list arg); 它使用格式化字符串 format 中的指令来指定输入的格式,并从标准输入流 stdin 中读取数据,并将数据按照指令指定的格式存储到相应的变量中

参数:

  • format : 格式化字符串,用来指定要读取的内容和格式
  • va_list : 一个 va_list 类型的变量,包含了可变参数列表
8.2 演示示例

#include <stdio.h> #include <stdarg.h> void myscan(const char *format, ...) { va_list args; va_start(args, format); vscanf(format, args); va_end(args); } int main() { int a; float b; char s[10]; myscan("%d%f%s", &a, &b, s); printf("a=%d, b=%.2f, s=%s\n", a, b, s); return 0; }

在上面的示例代码中,

  • 我们首先定义了三个变量 整形 a 、浮点型 b 和 字符数组 s
  • 然后,调用自定义的 myscan() 函数从标准输入流 stdin 中读取数据,并将数据存储到这些变量中 在 myscan() 函数中,
    • 我们首先使用 va_start() 宏初始化一个 va_list 变量 args
    • 然后调用 vscanf() 函数将格式化字符串和参数列表传递给该函数进行输入;
    • 最后使用 va_end() 宏清理 args 变量。
  • 最后我们打印输出上面输入的两个变量的数据,并结束程序。
8.3 运行结果

9. vsprintf

9.1 函数说明
函数声明 函数功能 int vsprintf(char *str, const char *format, va_list ap); 它使用格式化字符串 format 中的指令来指定输出的格式,并将后续的可变参数按照指令指定的格式输出到字符数组 str 中。

参数:

  • str: 用来存储格式化数据的字符数组的指针
  • format : 格式化字符串,用来指定要输出的内容和格式
  • va_list : 一个 va_list 类型的变量,包含了可变参数列表
9.2 演示示例

#include <stdio.h> #include <stdarg.h> void myprint(const char *format, ...) { char buffer[100]; va_list args; va_start(args, format); vsprintf(buffer, format, args); va_end(args); printf("%s", buffer); } int main() { int a = 10; float b = 3.1415; char s[] = "huazie"; myprint("a=%d, b=%.4f, s=%s\n", a, b, s); return 0; }

在上面的示例代码中,

  • 我们首先定义了三个变量 整形 a 、浮点型 b 和 字符数组 s
  • 然后,调用自定义的 myprint() 函数将格式化字符串和这些变量的值输出到字符数组 buffer 中,并打印输出字符数组 buffer ; 在 myprint() 函数中,
    • 我们首先使用 va_start() 宏初始化一个 va_list 变量 args
    • 然后调用 vsprintf() 函数将格式化字符串和参数列表传递给该函数进行输出,并将输出结果存储到 buffer 数组中;
    • 最后使用 va_end() 宏清理 args 变量。
  • 最后结束程序。
9.3 运行结果

10. vsscanf

10.1 函数说明
函数声明 函数功能 int vsscanf(const char *str, const char *format, va_list ap); 它使用格式化字符串 format 中的指令来指定输入的格式,并从字符数组 str 中读取数据,并将数据按照指令指定的格式存储到相应的变量中

参数:

  • str: 用来读取的格式化数据的字符数组的指针
  • format : 格式化字符串,用来指定要读取的内容和格式
  • va_list : 一个 va_list 类型的变量,包含了可变参数列表
10.2 演示示例

#include <stdio.h> #include <stdarg.h> void myscan(const char *str, const char *format, ...) { va_list args; va_start(args, format); vsscanf(str, format, args); va_end(args); } int main() { int a; float b; char s[10]; char buffer[] = "10 3.1415 huazie"; myscan(buffer, "%d%f%s", &a, &b, s); printf("a=%d, b=%.4f, s=%s\n", a, b, s); return 0; }

在上面的示例代码中,

  • 我们首先定义了四个变量 整形 a 、浮点型 b 、 字符数组 s 和 字符数组 buffer
  • 然后,调用自定义的 myscan() 函数从字符数组 buffer 中读取数据,并将数据存储到另外 3 个变量中; 在 myscan() 函数中,
    • 我们首先使用 va_start() 宏初始化一个 va_list 变量 args
    • 然后调用 vsscanf() 函数将字符数组 buffer 和格式化字符串以及参数列表传递给该函数进行输入,并将数据存储到相应的变量中;
    • 最后使用 va_end() 宏清理 args 变量。
  • 最后我们打印输出上面从字符数组 buffer 中读取并输入的三个变量的数据,并结束程序。
10.3 运行结果

参考

  1. [API Reference Document]