| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 23931 人关注过本帖
标题:一个很莱的问题:C语言中没有_max和_min这两个函数的吗?
只看楼主 加入收藏
autorun
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-2-20
收藏
 问题点数:0 回复次数:13 
一个很莱的问题: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
麻烦帮我解释一下,谢谢!
搜索更多相关主题的帖子: max C语言 min 函数 
2007-02-27 08:51
田里兵蜂
Rank: 1
等 级:新手上路
威 望:2
帖 子:604
专家分:0
注 册:2007-1-29
收藏
得分:0 
应该没有,不过这个函数很简单,你可以自定定义一个的.

int max(int a,int b)
{
return a>=b?a:b;

}
2007-02-27 09:29
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
函数分为自定义函数和库函数(己经有),如果是库函数,直接用就可以,而自定义函数,说到明,当然自己写。

谁有强殖装甲第二部,可以Q我460054868
2007-02-27 09:47
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 

常规情况下,几乎所有的编译器使用宏来实现 max() 及 min() 函数,
它们一般在 stdio.h 这份文件中以宏方式被声明。

使用宏来实现的原因一般是因为这两个函数非常简单,
它们一般的实现如下:
#define max(a,b) ( ((a)>(b)) ? (a):(b) )
#define min(a,b) ( ((a)>(b)) ? (b):(a) )

使用宏的另外一个好处是使得该函数具备了“重载”功能,
你可以让传递的参数不局限于某种类型(只限基本类型-非结构类型),如 int 或 char。

C标准编译器将为每个正确定义的函数在其名称前添加一个下划线,
然而,在调用时不能也写上此下划线。


欢迎加入 MVC 技术讨论群(新群:90093426)
2007-02-27 12:35
大年初四
Rank: 1
等 级:新手上路
帖 子:641
专家分:2
注 册:2007-2-21
收藏
得分:0 
什么是宏啊?另外
[QUOTE]你可以让传递的参数不局限于某种类型(只限基本类型-非结构类型),如 int 或 char。[/QUOTE]大侠可以给个简单的例子吗,不胜感激

大年初三可怜怜,初四晚上饭一碗
2007-02-27 12:39
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 
若不清楚什么是宏,由衷地请您先看看入门的书

宏声明将使表达式在预处理时被替换,max 与 min 的参数是在此过程被确定类型的,
所以在使用宏时可以使用不同的基本类型。

欢迎加入 MVC 技术讨论群(新群:90093426)
2007-02-27 12:46
大年初四
Rank: 1
等 级:新手上路
帖 子:641
专家分:2
注 册:2007-2-21
收藏
得分:0 
定义宏比定义函数好在什么地方啊

大年初三可怜怜,初四晚上饭一碗
2007-02-27 12:48
zll10731
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-2-24
收藏
得分:0 

我也不知道啊,也告诉我
qq 316001009
电子邮件 rapeyoumama@sohu.com


2007-02-27 12:50
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 

将 max() 及 min() 用宏实现是因为它们的实现非常简单——这是使用宏来代替函数的前提。
同时因为它们实际上不是函数,所以没有调用的花销。

—— 只有用在适合的地方,宏便恰如其分地获得这些好处,这不是通用的方法。


欢迎加入 MVC 技术讨论群(新群:90093426)
2007-02-27 12:53
大年初四
Rank: 1
等 级:新手上路
帖 子:641
专家分:2
注 册:2007-2-21
收藏
得分:0 
是不是调用宏比调用函数更节省资源啊

大年初三可怜怜,初四晚上饭一碗
2007-02-27 12:55
快速回复:一个很莱的问题:C语言中没有_max和_min这两个函数的吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018735 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved