2010-10-24 100 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?