“警告:在声明const char时,在类型名称中键入默认为'int'”

时间:2016-07-25 12:49:17

标签: c

我正在编写一个非常简单的C程序,它的开头是这样的:

#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);

但为第二行提供相同的变量。这是怎么回事?

1 个答案:

答案 0 :(得分:4)

投射到const等于投射到const int。省略type并且仅设置了qualified时,编译器只假定int

只需删除(const)演员。通过将指向的值声明为const,您已经做了正确的事。

相关问题