h*****g 发帖数: 312 | 1 比如 如下程序:
char find(char *in)
{
if(in==NULL)
{
}
}
要先check input 指针是否为空,如果真为空,该返回什么值呢?
还是用assert 直接把程序中断(感觉一般调试时用asset呀)
想听听大家的意见 |
S**I 发帖数: 15689 | 2 What is the purpose of this function?
【在 h*****g 的大作中提到】 : 比如 如下程序: : char find(char *in) : { : if(in==NULL) : { : } : } : 要先check input 指针是否为空,如果真为空,该返回什么值呢? : 还是用assert 直接把程序中断(感觉一般调试时用asset呀) : 想听听大家的意见
|
y*******g 发帖数: 6599 | 3 面试的时候和面试官提一下就好了,
常见问题比如atoi可以参考标准库是怎么处理的。
工作中具体情况具体处理 |
h*****g 发帖数: 312 | 4 for example, find the first non-repeate char from a char array
【在 S**I 的大作中提到】 : What is the purpose of this function?
|
h*****g 发帖数: 312 | 5 哦 面试的时候
如果是
for example, find the first non-repeate char from a char array
按照上面的函数声明,
如果最后在input char array中 没找到单一值,返回啥呀?
【在 y*******g 的大作中提到】 : 面试的时候和面试官提一下就好了, : 常见问题比如atoi可以参考标准库是怎么处理的。 : 工作中具体情况具体处理
|
h*****g 发帖数: 312 | 6 比如 如下程序:
char find(char *in)
{
if(in==NULL)
{
}
}
要先check input 指针是否为空,如果真为空,该返回什么值呢?
还是用assert 直接把程序中断(感觉一般调试时用asset呀)
想听听大家的意见 |
S**I 发帖数: 15689 | 7 What is the purpose of this function?
【在 h*****g 的大作中提到】 : 比如 如下程序: : char find(char *in) : { : if(in==NULL) : { : } : } : 要先check input 指针是否为空,如果真为空,该返回什么值呢? : 还是用assert 直接把程序中断(感觉一般调试时用asset呀) : 想听听大家的意见
|
y*******g 发帖数: 6599 | 8 面试的时候和面试官提一下就好了,
常见问题比如atoi可以参考标准库是怎么处理的。
工作中具体情况具体处理 |
|
h*****g 发帖数: 312 | 9 for example, find the first non-repeate char from a char array
【在 S**I 的大作中提到】 : What is the purpose of this function?
|
h*****g 发帖数: 312 | 10 哦 面试的时候
如果是
for example, find the first non-repeate char from a char array
按照上面的函数声明,
如果最后在input char array中 没找到单一值,返回啥呀?
【在 y*******g 的大作中提到】 : 面试的时候和面试官提一下就好了, : 常见问题比如atoi可以参考标准库是怎么处理的。 : 工作中具体情况具体处理
|
g**********y 发帖数: 14569 | 11 程序怎么写,是需要design上计划好。
原则就是:可以在局部处理的错误,你就在局部处理了;如果局部不能确定怎么处理的
,wrap好扔给上一层。
比如输入有问题,如果界面上可以提示用户重新输入,你就需要告诉界面那一层输入是
有什么样的问题,如果笼统地扔个-1, 或者null, 用户肯定莫名其妙。
反过来,如果界面不管这些情况,出错之后直接拒绝。那你就没必要详细地分,返回个
-1, null什么的,告诉界面层:输入错了,我不能处理,你自己看着办。
前一种写法,很罗嗦;后一种写法,简单,但是有缺陷。所以实际情况里,就是你自己
权衡。
我的处理一般是:先写简单的,如果不能满足实际需要,再改成复杂的。
【在 h*****g 的大作中提到】 : 比如 如下程序: : char find(char *in) : { : if(in==NULL) : { : } : } : 要先check input 指针是否为空,如果真为空,该返回什么值呢? : 还是用assert 直接把程序中断(感觉一般调试时用asset呀) : 想听听大家的意见
|
c****p 发帖数: 6474 | 12 字符串处理的话,返回NULL算是一个比较稳妥的办法了吧
【在 g**********y 的大作中提到】 : 程序怎么写,是需要design上计划好。 : 原则就是:可以在局部处理的错误,你就在局部处理了;如果局部不能确定怎么处理的 : ,wrap好扔给上一层。 : 比如输入有问题,如果界面上可以提示用户重新输入,你就需要告诉界面那一层输入是 : 有什么样的问题,如果笼统地扔个-1, 或者null, 用户肯定莫名其妙。 : 反过来,如果界面不管这些情况,出错之后直接拒绝。那你就没必要详细地分,返回个 : -1, null什么的,告诉界面层:输入错了,我不能处理,你自己看着办。 : 前一种写法,很罗嗦;后一种写法,简单,但是有缺陷。所以实际情况里,就是你自己 : 权衡。 : 我的处理一般是:先写简单的,如果不能满足实际需要,再改成复杂的。
|
g**********y 发帖数: 14569 | 13 也是分情况,在实际里,我经常遇到从底层抛上来的Null, 要查到底是哪儿扔出来的,
为什么?虽然都不难查,但是都需要你从source code debug, 对于用户来说,那是很
冒火的一件事。
【在 c****p 的大作中提到】 : 字符串处理的话,返回NULL算是一个比较稳妥的办法了吧
|
c****p 发帖数: 6474 | 14 如果函数足够细化的话,返回NULL只对应非常有限的情况。
这个例子也只在两种情况下返回NULL:
1.空串(指针本身为空和字符串为空)。
2.找不到unique字符,这个类似正常的字符串查找,没匹配的时候也返回NULL。。
大一点儿程序得用error code了吧【 在 gloomyturkey (一只郁闷的火鸡) 的大作中提
到: 】 |