class-c语言定义一对一对的可变参数函数

问题描述

c语言定义一对一对的可变参数函数
fund(type_1 data_1 type_2 data_2 ...);

类似这样的函数怎样定义。

解决方案

http://www.cnblogs.com/MarvinGeng/archive/2012/07/19/2598923.html

解决方案二:
定义一个参数数组作为一个参数

解决方案三:
typedef struct field_pad
{
UINT1 type;
UINT1 len;
INT1 pad[62];
}field_pad_t;

void persist_controller_data(int cnt field_pad_t** fp);

类似这样吗?

时间: 2024-09-28 12:54:55

class-c语言定义一对一对的可变参数函数的相关文章

C语言“…”占位符及可变参数函数

C语言函数的参数传递总是固定了个数,那么有没有传递任意个数参数的方法呢?在C++中,函数重载提供了多种参数传递的解决办法,但也不是任意参数个数.事实上,C语言是提供任意数量参数的解决方案的. printf(),scanf()等就是这样一类可支持任意参数个数变量的函数,以下是printf的用法示例. 1 printf("%d",x); 2 printf("%f",y); 3 printf("Hello my name is %s", name);

C语言可变参数函数详解示例_C 语言

先看代码 复制代码 代码如下: printf("hello,world!");其参数个数为1个.printf("a=%d,b=%s,c=%c",a,b,c);其参数个数为4个. 如何编写可变参数函数呢?我们首先来看看printf函数原型是如何定义的.在linux下,输入man 3 printf,可以看到prinf函数原型如下: 复制代码 代码如下: SYNOPSIS#include <stdio.h>int printf(const char *form

c-关于C函数指针和可变参数函数问题

问题描述 关于C函数指针和可变参数函数问题 以下程序段在linux用户空间执行成功,在内核空间执行失败,目前没有查清失败原因,所以请高手帮忙看一下! 在用户空间和内核空间分别执行以下程序段函数定义:int test_func(int a void* b){ printk(""a = %dn"" a); printk(""b = %pn"" b); return 1;} 用指针调用函数:int a = 0;int (*func)

Swift中的可变参数函数介绍_Swift

可变参数函数指的是可以接受任意多个参数的函数,我们最熟悉的可能就是 NSString 的 -stringWithFormat:方法了.在 Objective-C 中,我们使用这个方法生成字符串的写法是这样的: 复制代码 代码如下: NSString *name = @"Tom"; NSDate *date = [NSDate date]; NSString *string = [NSString stringWithFormat:                 @"Hell

C语言中的可变参数函数的浅析(以Arm 程序中的printf()函数实现为例) .

我们在C语言编程中会遇到一些参数个数可变的函数,一般人对它的实现不理解.例如Printf():   Printf()函数是C语言中非常常用的一个典型的变参数函数,它 的原型为: int printf( const char* format, ...); 它除了一个参数format固定外,后面的参数的个数和类型是不确定的,如下列三种调用方法: 1.    printf("%d\n", i); 2.    printf("%s\n", "Hello World

C语言中实现可变参数函数

通过stdarg.h头文件为函数提供了定义可变参数列表的能力.声明一个可变参数的函数类似: void f1(int n,...); 其中n表示参数列表个数,而用省略号来表示未知参数列表.stdarg.h中提供了一个va_list类型,用于存放参数.一个大概的使用过程类似: void f1(int n,...) {    va_list ap;    va_start(ap,n);   //初始化参数列表    double first=va_arg(ap,double);  //取第一个参数  

从printf谈可变参数函数的实现

一直以来都觉得printf似乎是c语言库中功能最强大的函数之一,不仅因为它能格式化输出,更在于它的参数个数没有限制,要几个就给几个,来者不拒.printf这种对参数个数和参数类型的强大适应性,让人产生了对它进行探索的浓厚兴趣. 1.使用情形 int a =10; double b = 20.0; char *str = "Hello world"; printf("begin print\n"); printf("a=%d, b=%.3f, str=%s\

C/C++宏定义的可变参数详细解析_C 语言

编写代码的过程中,经常会输出一些调试信息到屏幕上,一般会调用printf这类的函数.但是当调试解决之后,我们需要手工将这些地方删除或者注释掉.最近在看<Linux C编程一站式学习>这本书,就想到一个方法: 复制代码 代码如下: void myprintf(char* fmt, ...){}#ifdef DEBUG#define printf(fmt, args...) myprintf(fmt, ##args)#endif 调试阶段带着DEBUG调试,正式上线就可以把printf变成一个空函

iOS可变参数定义以及调用

什么是可变长参数? 可变长参数:顾名思义,就是函数的参数长度(数量)是可变的.比如C语言的printf系列的(格式化输入输出等)函数,都是参数可变的.下面是printf函数的声明: int printf(const char *format, -); 可变参数函数声明方式都是类似的 如何实现? ObjC中没有提供直接的变长参数方法,需要使用C标准库中得av_list方法,使用简单: C语言可变参数通过三个宏(va_start.va_end.va_arg)和一个类型(va_list)实现的. 具体