VC从入门到精通
发表在C语言图书答疑 2010-05-08
是否精华
版块置顶:
你好。
void ShowMessage(const char* Text,int Type)
{
  printf("Message:Text=%s,Type=%d\n",Text,Type+1);
}
void ShowMessage(const char* Text,unsigned int Type)
{
   printf("Message:Text=%s,Type=%d\n",Text,Type);
}
调用程序段:
{
  unsigned char i=0;
  ShowMessage("ok",i);
}
输出结果为:Message:Text=ok,Type=1
这个地方怎么理解的呢?调用第二个函数也是合法的呀,帮我解释一下,好吧,谢谢!!!!
分享到:
精彩评论 3
8031
学分:0 LV1
2010-05-10
沙发
ShowMessage是重载的函数,编译器根据参数识别函数
小永_mrkj
学分:0 LV1
2010-05-11
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
ShowMessage是重载的函数,编译器根据参数识别函数
[/FIELDSET]

回复:
  我知道是函数重载,但我觉得调用第二个函数也是对的,输出结果为什么不是:Message:Text=ok,Type=0 呢,你前一次说:0也属于unsigned int 类型的呀,unsigned char i=0;ShowMessage("ok",i);怎么不调用第二个函数,输出:Message:Text=ok,Type=0呢?
  这能折射出int和unsigned int类型的什么区别呢?   敬请指点!!!

8031
学分:0 LV1
2010-05-14
地板
应该这样定义
unsigned int i=0;

unsigned char会被强制类型转换的
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照