指针上的C指针:未使用的变量

时间:2010-10-24 14:45:20

标签: c pointers

我刚刚在C中做了我的第一个应用,我有警告(已编辑):unused variable pp

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

我只是想让pp指向变量p

的地址

请原谅我,如果这是一个愚蠢的问题,但在我的书中,他们并没有谈论关于指针的指针。 感谢

4 个答案:

答案 0 :(得分:3)

这完全合法。你的编译器只是通知你你创建了一个变量,然后没有对它做任何事情 - 通常表示编程错误。

答案 1 :(得分:3)

我可以认为,这不是错误,而是警告。 “未使用的变量pp”表示您在其他代码中不使用变量pp。

答案 2 :(得分:2)

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

如果你要这样做,例如printf("%d\n", **p);,然后警告就会消失。

答案 3 :(得分:1)

  

我有此警告(已编辑):未使用   变量pp

尊重(并担心并询问)编译器警告消息的荣誉。保持这种状态。(我总是使用-Werror进行编译,以便将“警告”视为“错误”。我总觉得它很有帮助。)

引用gcc warnings page

  

-Wunused-variable

     

每当局部变量或非常量静态时发出警告   除了它之外,变量是未使用的   宣言。此警告已启用   by -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?