一个C++程序例子——指向函数的指针、含有可变形参的函数(备查)
来源:互联网 发布:淘宝客佣金查看工具 编辑:程序博客网 时间:2024/04/29 16:24
这里列出的两个东西不经常使用,很容易忘记。其中含有可变参数的函数的部分来自CSDN论坛。
#include <iostream>
#include <string>
#include <stdarg.h>
using namespace std;
int foo(const int)
...{
printf("int n ");
return 1;
}
void foo(int(*p)(int))
...{
p(1);
printf("foo ");
}
void f(const char* str, ...)
...{
va_list ap;
char* s = 0;
int d = 0;
double f = 0.0;
va_start(ap, str);
s = va_arg(ap, char*);
d = va_arg(ap, int);
f = va_arg(ap, double);
va_end(ap);
printf("%s, %s, %d, %f", str, s, d, f);
}
void main()
...{
int(*p)(const int) = foo;
foo(p);
foo(p(1)); //注意这个调用和上面那个的区别
f("function", "varargs", 1, 1.0);
getchar();
}
#include <string>
#include <stdarg.h>
using namespace std;
int foo(const int)
...{
printf("int n ");
return 1;
}
void foo(int(*p)(int))
...{
p(1);
printf("foo ");
}
void f(const char* str, ...)
...{
va_list ap;
char* s = 0;
int d = 0;
double f = 0.0;
va_start(ap, str);
s = va_arg(ap, char*);
d = va_arg(ap, int);
f = va_arg(ap, double);
va_end(ap);
printf("%s, %s, %d, %f", str, s, d, f);
}
void main()
...{
int(*p)(const int) = foo;
foo(p);
foo(p(1)); //注意这个调用和上面那个的区别
f("function", "varargs", 1, 1.0);
getchar();
}
执行结果为:
int n
foo
int n
int n
function, varargs, 1, 1.000000
在无法列举出传递给函数的所有实参的类型和数目时,可以使用省略符形参。省略符暂停了类型检查机制。它们的出现告知编译器,当调用函数时,可以有0个或多个实参,而实参的类型未知。两种形式:
void foo(parm_list, ...); //逗号可选,这个规定很麻烦
void foo(...); //现在还不知道这种形式如何使用,待查。。。
- 一个C++程序例子——指向函数的指针、含有可变形参的函数(备查)
- 含有可变形参的函数
- 含有可变形参的函数
- 含有可变形参的函数
- 返回指向函数的指针的函数 的一个例子
- C/C++——指向函数的指针和指向函数的指针的数组
- C语言技巧--在结构体中使用函数例子(定义一个指向函数的指针)
- C指向函数指针的函数指针
- C/C++—— 写一个函数,它的参数为指向函数的指针,返回类型也为指向函数的指针
- c 指向函数的指针
- 指向函数的指针——指向函数的指针作为函数的形参
- C、C++指向函数的指针(函数指针)浅析
- C语言函数指针(指向函数的指针)
- 105 C语言函数指针(指向函数的指针)
- 一个函数函数指向自身的指针
- C语言指针---指向函数的指针
- 细嚼慢咽C++primer(3)——引用形参,内联函数,重载函数,指向函数的指针
- C语言——指向函数的指针
- 如何实现Multi-Key Multi-Map
- 《C#入门经典》学习笔记(面向对象编程)
- Ajax漫步(二)XMLHttpRequest 简介
- 《C#入门经典》学习笔记(定义类)
- 《C#入门经典》学习笔记(定义类成员)
- 一个C++程序例子——指向函数的指针、含有可变形参的函数(备查)
- 探索 Linux 内存模型
- 软件测试人员应该注意的地方
- JavaScript escape/unescape编码的Java实现
- linux2.6 启动传递命令行分析
- 一道面试题目6
- 自己动手提高ubuntu系统的性能
- jsp页面checkbox数组递交到Action代码
- 利用GDI+的双缓冲技术来提高绘图效率