我有以下代码:
typedef struct{
int A;
char* B;
}MYTYPE;
MYTYPE sample;
int nCount;
void doSomething(int A, MYTYPE* B)
{
//doing something inside this function.
}
doSomething(nCount, &sample);
我的函数doSomething()中是否有办法检查传递的第二个参数是否正好sample
?
答案 0 :(得分:3)
是的,您只需比较地址即可。
请记住,指向某事物的指针实际上就是那个东西的地址。所以你可以这样做:
void doSomething(int A, MYTYPE* B)
{
if (B == &sample)
{
printf("B is sample\n";
}
}
答案 1 :(得分:0)
是:
if(B == &sample)
{
printf("Get your own, don't use sample!\n");
}
请注意您的通话有误,您需要:
doSomething(nCount, &sample);
^
|
IMPORTANT!
由于该函数需要一个地址。它不会像问题中所写的那样构建。