2016-07-25 32 views
-1

私はこのように始まる非常に単純なCプログラム、書いている:私は取得するには、最後の行については「警告:タイプの名前に 'int型への型デフォルト」の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を与えます2行目のarning。ここで何が起こっているのですか?

+0

コードをインデントしてください。 –

答えて

4

constにキャストすると、キャストする金額はconst intになります。 typeを省略して修飾子のみを設定すると、コンパイラはただintとみなします。

キャスト(const)を削除するだけです。あなたはすでに、指摘された値をconstと宣言して正しいことをしました。

+0

Jean-Françoisありがとうございます - これは動作します。多くのあなたの助けに感謝します。 – dmitry

+0

あなたのために働く場合、答えを受け入れてください。 –

+0

完了 - ご迷惑をおかけして申し訳ございません。 – dmitry

関連する問題