C:如何检查特定变量是否已作为参数传递

时间:2013-02-04 10:38:21

标签: c function

我有以下代码:

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

2 个答案:

答案 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!

由于该函数需要一个地址。它不会像问题中所写的那样构建。