Gun C 和 VC对struct定义的一点不同

下面的代码定义delaykey的语句,在linux下可以编译通过,但是在VC 6.0下却报错:

--------------------Configuration: 1 - Win32 Debug--------------------
Compiling...
1.c
c:/documents and settings/administrator/桌面/1.c(14) : error C2065: 'str' : undeclared identifier
c:/documents and settings/administrator/桌面/1.c(14) : warning C4047: 'initializing' : 'char *' differs in levels of indirection from 'int '
c:/documents and settings/administrator/桌面/1.c(14) : error C2059: syntax error : ':'

 

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

void  main()
{
    
struct
    
{
        
char *str;
        
int  len;
        
int  retry;
    }

    delaykey[] 
=
    
{
        
{str: "abc", retry: 1},
        
{str: "def", retry: 2},
    }
;

    printf(
"delaykey[0].str = %s ", delaykey[0].str);
    printf(
"delaykey[0].len = %d ", delaykey[0].len);
    printf(
"delaykey[0].retry = %d ", delaykey[0].retry);


    printf(
"delaykey[1].str = %s ", delaykey[1].str);
    printf(
"delaykey[1].len = %d ", delaykey[1].len);
    printf(
"delaykey[1].retry = %d ", delaykey[1].retry);
    

}

 


 

你可能感兴趣的:(Gun C 和 VC对struct定义的一点不同)