我越来越痛苦地从Java转移到C.我已经习惯了使用不同的方法来使用相同的名称,但它们采用不同的参数.在C中这会产生问题吗?
Cell makeCell(int dim, int iterations, Cell parent); Cell makeCell(Cell parent);
有一些小巧的变通对于这个问题,或者我应该保持咬紧牙关,并呼吁他们的一个_makeCell
或makeCell2
或一些其他类似的可笑吗?
在C中,您没有重载函数 - 具有相同名称但参数类型不同的函数(忽略诸如
C99中的esoterica ).
必须为这些函数指定不同的名称.
或者使用支持重载函数名称的其他语言.
你在Java或C++中理解它是没有重载的(尽管你手动创建了使用函数指针的重载,但是如果你想要面向对象,使用C++,而不是带有kludges的C: - ),所以你应该如你所怀疑的那样,称它们为不同的功能名称.
但是不要将它们称为_makeCell或makeCell2,因为那不是描述性的.怎么样:
Cell makeCellFromDimensionAndIteration(int dim, int iterations, Cell parent); Cell makeCell(Cell parent);
第一个可以缩短,但要确保它仍然有意义.makeCell2对于阅读代码的人来说意义不大(包括你自己未来六个月).