我不明白为什么编译器警告我关于在此代码中传递不兼容的指针类型:(在这种情况下void *
和void **
之间有什么区别)(我不知道这是否有所作为,但我正在使用gnu99
C版)传递给void **而不是void *会让编译器抱怨类型,为什么?
void someFunc(void ** foo) {
printf("%s\n", *foo);
}
int main() {
char * text = "some text";
someFunc(&text);
return 0;
}
和在预先
好吧,理解,所以当我有一个交换功能,如 无效交换( ** a, ** b)交换指针,而不是值。如果我想使它通用(类型不敏感或其他)什么是正确的方法来做到这一点? –
Sasquash
@Sasquash对不起,我没有明白你的意思。为了交换'T'类型的两个值就足够了'T *'。 – 2013-08-07 07:08:58