问题描述
我使用的是Visual Studio 2008速成版。
一个普通的Win32控制台C项目,代码如下:
int main(void)
{
struct _addr_info
{
char name[30];
char street[40];
char city[20];
char state[3];
unsigned long int zip;
} addr_info;
addr_info.zip = 12345;
return 0;
}
通常对于结构,IntelliSense将列出成员。然而,在这里它不能编译得很好,并且在调试时我检查了数据也被正确地输入了。我做错了什么吗?
即使此代码也有相同的问题。
int main(void)
{
struct
{
char name[30];
char street[40];
char city[20];
char state[3];
unsigned long int zip;
} addr_info;
addr_info.zip = 12345;
return 0;
}
下面的代码也不起作用。
int main(void)
{
struct _addr_info
{
char name[30];
char street[40];
char city[20];
char state[3];
unsigned long int zip;
} ;
struct _addr_info addr_info;
addr_info.zip = 12345;
return 0;
}
下面的代码运行正常,并列出了结构的成员。
struct _addr_info
{
char name[30];
char street[40];
char city[20];
char state[3];
unsigned long int zip;
} addr_info;
int main(void)
{
addr_info.zip = 12345;
return 0;
}
这个也是。
struct _addr_info
{
char name[30];
char street[40];
char city[20];
char state[3];
unsigned long int zip;
} ;
int main(void)
{
struct _addr_info addr_info;
addr_info.zip = 12345;
return 0;
}
推荐答案
我在msdn论坛上发帖,通过链接得到了答案。
http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvc/thread/8a22dc4a-3632-4cb9-92a3-63a18b55e7b6
希望这能有所帮助。