我有一个函数,我将迭代器传递给char *缓冲区(也是一个char *).该函数需要递增迭代器.无论如何,我发现将迭代器传递给函数的一个好方法是通过引用传递指针:
bool myFunction(unsigned char * &iter) { ...
但是,我听说这是不好的形式,可能会导致问题.这是我的同事建议我使用的方法:
typedef unsigned char * unsignedcharptr; bool myFunction(unsignedcharptr &iter) { ...
在我看来,他们都在做同样的事情.这两种方法之间是否存在编译器差异(我使用的是Visual Studio 2005)?哪个是对的?
解决方法
我认为这两者之间没有任何区别.你应该问你的同事他认为有什么.
可能的原因是可维护性,如果你想从unsigned char *切换到char *,你只需要改变一个地方.但我认为,这可能导致其他问题.