2024-09-04 广告
max()不是一个C语言里提供给你的函数,而是程序员自己定义的。
是你看的那个程序源代码上,写程序的人自己定义了一个名为max的函数。它和main()函数不一样,main()才是C语言函数库里已经定义好的,main()已经被赋予了意义,那就是每个C程序的主函数。而这个max()只是写那个源代码的人自己定义的。
比方说,可以定义一个宏来完成这个计算:
#include<stdio.h>
#define max(a,b) ((a)>(b)?(a):(b))
int main()
{int a,b,c;
scanf("%d %d",&a,&b);
c=max(a,b);
printf("%d",c);
return 0;
}
有个math库 math库里有max这个函数 #define max(a,b)(a>b?a:b),是C语言版的内联函数
。第三行是一个三目运算符,可以这样理解:
if ( a > b )
return a;
else
return b;
这是C++版的内联函数,不同的是多了个类型检查,所以函数的数据类型不一定是float,可以是int,double......inline float max ( float a, float b )// (a>b?a:b)。上面的与下面语句是等效的:
if ( a > b )
return a;
else
return b。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。
可以写个函数,也可以用宏。比如在include下一句写上:
#define max(x,y) ( x>y?x:y )
这句表示:当x>y时,max(x,y)的值为x,反之,则为y。