魏名华

不要偷懒,做更好的自己

Nothing


No Welcome Message

左耳听风-编程范式游记

void swap(int* x, int* y)
{
	int temp = *x;
	*x = *y;
	*y = tmp;
}
然而,这个函数最大的问题就是它只能给 int 值用,这个世界上还有很多类型包括 double、float,这就是静态语言最糟糕的一个问题

习惯了静态强类型的语言,都忽视了这一点,原来想js那样函数参数不用类型声明的好处,是非常非常灵活。但是C++却很好的解决了这些问题。

关于这个,本文的螺帽和螺丝刀的比喻太精彩了。

后续也很精彩,耗子的文章真是精华中的精华

泛型实现:

void swap(void* x, void* y, size_t size)
{
     char tmp[size];
     memcpy(tmp, y, size);
     memcpy(y, x, size);
     memcpy(x, tmp, size);
}

即使这样,在提升复杂度的同时,我们发现还有问题,比如,我们想交换两个字符串数组,类型是:char*,那么,我的swap()函数的x和y参数是不是要用void**了?这样一来,接口就没法定义了。

后续不在笔记了,文章太精彩,笔记几乎是全部文章。