我有以下代码:
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
?
是的,您可以简单地比较地址。
请记住,指向某事物的指针实际上是该事物的地址。所以你可以这样做:
void doSomething(int A, MYTYPE* B)
{
if (B == &sample)
{
printf("B is sample\n";
}
}
是的:
if(B == &sample)
{
printf("Get your own, don't use sample!\n");
}
请注意,您的电话是错误的,您需要:
doSomething(nCount, &sample);
^
|
IMPORTANT!
由于该函数需要一个地址。正如问题中所写,它不会构建。