C Programming Tutorial
C Program Tutorial
Selected Reading
- C - Discussion
- C - Useful Resources
- C - Quick Guide
- C - Input & Output
- C - Typedef
- C - Bit Fields
- C - Unions
- C - Structures
- C - Strings
- C - Pointers
- C - Arrays
- C - Scope Rules
- C - Functions
- C - Loops
- C - Decision Making
- C - Operators
- C - Storage Classes
- C - Constants
- C - Variables
- C - Data Types
- C - Basic Syntax
- C - Program Structure
- C - Environment Setup
- C - Overview
- C - Home
C Program Tutorial
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
C - 可变的颜色
C - Variable Arguments
有时,当你想起某种功能时,你可能会遇到这样的情况,而这种作用可能产生不同的论据,即参数,而不是预先确定的参数。 C方案拟订语言为这种情况提供了解决办法,并允许你确定一个能够根据你的要求接受数量不等的参数的职能。 以下例子说明了这种职能的定义。
int func(int, ... ) { . . . } int main() { func(1, 2, 3); func(1, 2, 3, 4); }
应当指出,职能func() 其最后的论点是,即三个狗(.)。 而此前的智慧总是int,这将是通过的所有可变论点。 为了使用这种功能,您需要使用stdarg.h。 提供职能和宏观工具的主编文件,以落实不同论点的功能并遵循既定步骤——
用其最后参数确定一项功能,即作为智慧,在信息之前,其功能总是int,代表争论的数量。
创建va_pst 功能定义中的类型变量。 在编队长档案中界定了这种类型。
使用va_arg 宏观和va_pst 出入理由清单中每一项目的变量。
利用宏观va_end清理分配给va_pst变量的记忆。
现在,让我们采取上述步骤,并写下一个简单的功能,可以计算变量数,回去平均数——
#include <stdio.h> #include <stdarg.h> double average(int num,...) { va_pst vapst; double sum = 0.0; int i; /* initiapze vapst for num number of arguments */ va_start(vapst, num); /* access all the arguments assigned to vapst */ for (i = 0; i < num; i++) { sum += va_arg(vapst, int); } /* clean memory reserved for vapst */ va_end(vapst); return sum/num; } int main() { printf("Average of 2, 3, 4, 5 = %f ", average(4, 2,3,4,5)); printf("Average of 5, 10, 15 = %f ", average(3, 5,10,15)); }
如果上述法典得到编纂和执行,则会产生以下结果。 应当指出,“average()”这一功能两次被称作“,每次第一次辩论都是通过的各种论点的总数。 只有智慧才能通过不同的论据。
Average of 2, 3, 4, 5 = 3.500000 Average of 5, 10, 15 = 10.000000Advertisements