一个很莱的问题:C语言中没有_max和_min这两个函数的吗?
#include"stdio.h"#include"stdlib.h"
void main(void)
{
int x=100;
int y=200;
int max=_max(x,y);
printf("The larger value is %d\n",max);
}
我在C++6.0下编绎,提示'_max' : undeclared identifier
然后我又换了Turbo C for windows 3试了一下,又说:未定义的符号 '__max' in module e:\我的c~1\tuboc\1.c
麻烦帮我解释一下,谢谢!
----------------解决方案--------------------------------------------------------
应该没有,不过这个函数很简单,你可以自定定义一个的.
int max(int a,int b)
{
return a>=b?a:b;
}
----------------解决方案--------------------------------------------------------
函数分为自定义函数和库函数(己经有),如果是库函数,直接用就可以,而自定义函数,说到明,当然自己写。
----------------解决方案--------------------------------------------------------
常规情况下,几乎所有的编译器使用宏来实现 max() 及 min() 函数,
它们一般在 stdio.h 这份文件中以宏方式被声明。
使用宏来实现的原因一般是因为这两个函数非常简单,
它们一般的实现如下:
#define max(a,b) ( ((a)>(b)) ? (a):(b) )
#define min(a,b) ( ((a)>(b)) ? (b):(a) )
使用宏的另外一个好处是使得该函数具备了“重载”功能,
你可以让传递的参数不局限于某种类型(只限基本类型-非结构类型),如 int 或 char。
C标准编译器将为每个正确定义的函数在其名称前添加一个下划线,
然而,在调用时不能也写上此下划线。
----------------解决方案--------------------------------------------------------
什么是宏啊?另外
[QUOTE]你可以让传递的参数不局限于某种类型(只限基本类型-非结构类型),如 int 或 char。[/QUOTE]大侠可以给个简单的例子吗,不胜感激
----------------解决方案--------------------------------------------------------
若不清楚什么是宏,由衷地请您先看看入门的书。
宏声明将使表达式在预处理时被替换,max 与 min 的参数是在此过程被确定类型的,
所以在使用宏时可以使用不同的基本类型。
----------------解决方案--------------------------------------------------------
定义宏比定义函数好在什么地方啊
----------------解决方案--------------------------------------------------------
我也不知道啊,也告诉我
qq 316001009
电子邮件 rapeyoumama@sohu.com
----------------解决方案--------------------------------------------------------
将 max() 及 min() 用宏实现是因为它们的实现非常简单――这是使用宏来代替函数的前提。
同时因为它们实际上不是函数,所以没有调用的花销。
―― 只有用在适合的地方,宏便恰如其分地获得这些好处,这不是通用的方法。
----------------解决方案--------------------------------------------------------
是不是调用宏比调用函数更节省资源啊
----------------解决方案--------------------------------------------------------