2016-07-25 124 views
-1

我正在寫一個非常簡單的C程序,它是這樣開始的時候:「警告:類型默認爲類型名稱‘詮釋’」聲明爲const char *

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

int 
main(int argc, char **argv){ 

    // check that the program has been invoked correctly 
    if(argc < 3){ 
    fprintf(stderr, "Usage: find_char <string> <string>.\n"); 
    exit(EXIT_FAILURE); 
    } 

    char const *source = (const) (*++argv); 

最後一行,我得到以下警告:

main.c:17:3: warning: type defaults to ‘int’ in type name [enabled by default] char const *source = (const) (*++argv);

我想:

char const *source = NULL; 
source = (const) (*++argv); 

,但給出了同樣的v爲第二條線而努力。這裏發生了什麼?

+0

請縮進您的代碼。 –

回答

4

鑄造到const等於鑄造到const int。如果省略type並且只設置了限定條件,那麼編譯器會假定爲int

只要刪除(const)演員。通過將指定的值聲明爲const,您已經做了正確的事情。

+0

謝謝你,讓 - 弗朗索瓦 - 這確實有效。許多人感謝你的幫助。 – dmitry

+0

如果它適合你,請接受答案。 –

+0

完成 - 遺憾遺憾。 – dmitry

相關問題