免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3241 | 回复: 6
打印 上一主题 下一主题

使用if else if嵌套时候遇到的一个奇怪问题. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-28 17:39 |只看该作者 |倒序浏览

  1. if(strstr(readbuf,"RecordType")!=NULL) ReplaceString(readbuf, "AAAAA", Out.RecordType);
  2. else if(strstr(readbuf,"ChainCode")!=NULL) ReplaceString(readbuf, "AAAAA", Out.ChainCode);
  3. else if(strstr(readbuf,"PropertyCode")!=NULL) ReplaceString(readbuf, "AAAAA", Out.PropertyCode);
  4. else if(strstr(readbuf,"SequenceNumber")!=NULL) ReplaceString(readbuf, "AAAAA", Out.SequenceNumber);
  5. else if(strstr(readbuf,"ResvNameID")!=NULL) ReplaceString(readbuf, "AAAAA", Out.ResvNameID);
  6. else if(strstr(readbuf,"AuthType")!=NULL) ReplaceString(readbuf, "AAAAA", Out.AuthType);
  7.                         
  8. 下面还有30多个else if
复制代码


当执行到第24条以后的if else语句的时候ReplaceString传入的第三个变量值为空,想不通为什么?谁知道什么原因造成的?if else if嵌套层数是不是有限制? 执行到24条之后的ReplaceString都能执行,只是出现无法传入参数数值的问题.

[ 本帖最后由 zhonzn 于 2006-9-28 17:40 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-09-28 18:10 |只看该作者
代码不整齐,太长,用缩进看看

论坛徽章:
0
3 [报告]
发表于 2006-09-28 18:22 |只看该作者
看前两条就可以了,后面的结构都是一样的。

论坛徽章:
0
4 [报告]
发表于 2006-09-28 18:50 |只看该作者
原帖由 phus 于 2006-9-28 18:35 发表
靠, 这种代码只能用丑陋来形容了。
楼主你该这么办
const char *keywords[] = {"RecordType", "ChainCode", ..., NULL};


技巧。好主意。

论坛徽章:
0
5 [报告]
发表于 2006-09-28 19:59 |只看该作者
代码是随手写的,最终肯定不能用了,但是我奇怪怎么会出现这样的问题.

论坛徽章:
0
6 [报告]
发表于 2006-09-28 20:58 |只看该作者
你没把下面的全部列出来,哪知道是不是你哪边写错什么东西了呢

论坛徽章:
0
7 [报告]
发表于 2006-09-28 22:10 |只看该作者
原帖由 cythier 于 2006-9-28 20:58 发表
你没把下面的全部列出来,哪知道是不是你哪边写错什么东西了呢



哦,谢谢提醒,果然是写错了一个地方,有个关键字被另外一个包含了,所以出现问题,谢谢大家.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP