2010-10-24 95 views
1

我只是在做我的第一个应用程序在C和我有这个警告(编辑):unused variable pp的C指针:未使用的变量

int compteur = 1; 
int *p = &compteur; 
int **pp = &p; 

我只是试图让pp指向上ADRESS的变量p

请原谅我,如果这是一个愚蠢的问题,但在我的书他们不谈论指针指针。 谢谢

+0

除非你告诉编译器为了将警告作为错误来处理,这种情况通常最多会产生警告。 – AraK 2010-10-24 14:47:50

回答

2

那么如果这是你的程序唯一的作用,那么是的,编译器是正确的,警告你关于未使用的变量,因为你没有对它们做任何事情!

如果您要做例如printf("%d\n", **p);,那么警告应该消失。

3

这是完全合法的。你的编译器只是告诉你,你做了一个变量,然后没有做任何事情 - 通常表明编程错误。

3

我可以假设,那不是错误,但是警告。 “未使用的变量pp”意味着,你只是不在后面的代码中使用变量pp。

+0

哦对,所以没有必要担心:) – 2010-10-24 14:48:29

1

我有这个警告(编辑):未使用 可变PP

奖励尊重(和令人担心的,并要求)编译器警告消息。保持这一点。(我总是-Werror,使 “警告” 被当成编译我总是发现它有用 “的错误。”)。

gcc warnings page报价:

-Wunused变量

警告每当局部变量或非常量静态 变量未被使用时,其 声明除外。此警告由-Wall启用 。

严格地说,声明一个变量然后不使用它是有意义的。 pp就是这种情况,编译器正在提醒您。在这种特殊情况下,

  • 无论你使用一些需要方式pp,或

  • 在“无操作”的方式来使用它。

以下为“无操作”的方式代码:

int main() { 

    int compteur = 1; 
    int *p = &compteur; 
    int **pp = &p; 
    (void) pp;   // no-op use of pp 
} 

有关无操作使用的详细信息,请参阅其他线程:What does the following code do?