最近我遇到了一个函数的问题,它接受可变数量的参数,并期望最后一个参数为空指针。 我无法访问其实施。为什么要投射可变参数函数参数?
铸造是最后一个参数一个void*
工作,但传递NULL
(nullptr
不适用)直接将不会:
foo(x,y,(void*)NULL); //okay
foo(x,y,NULL); //crash
IMO这不应该有所作为,但话又说回来,我以前是错的。你能想到演员会有所作为的任何理由吗?或者这只是一个意外事件(一些异步或错误的构建或沿着这些线路)
对不起,我不能提供更多的细节。
因为'NULL'是一个整数,'(void *)NULL'是一个指针吗?可变参数不会像普通函数那样转换任何东西。 – Pubby 2013-03-22 14:55:49
@Pubby我只是不明白这是如何重要的功能。你能提供一个例子吗? – 2013-03-22 14:56:12
我认为这是问题,请使用nullptr代替它,它应该工作 – Felics 2013-03-22 14:56:33