LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1538|回复: 11

C语言 结构体 不明白 之处 ,求教!!

[复制链接]
发表于 2010-4-21 11:34:50 | 显示全部楼层 |阅读模式
#include <stdio.h>

struct nod {
        float x,y;
};

int main(void)
{
struct nod nodd1;
nodd1.x = 0.0;
nodd1.y = 0.0;

//int a = 0;

return 0;
}

我注释了int a = 0这一行的话,编译能通过, 如果不注释的话编译报错,报错如下:

main.c
F:\Test_c\main.c(13) : error C2143: syntax error : missing ';' before 'type'
Error executing cl.exe.

main.obj - 1 error(s), 0 warning(s)
编译器为 VC6.0
不知道为什么,小弟是菜鸟,请高手不吝指教。谢谢
发表于 2010-4-21 12:00:27 | 显示全部楼层
在我的电脑上没有错误!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-21 12:16:16 | 显示全部楼层

谢谢楼上的兄弟!

我用gcc编译器也是没有问题,看来办公室到VC6是不完全版本,谢谢
回复 支持 反对

使用道具 举报

发表于 2010-4-21 12:39:29 | 显示全部楼层
VC不支持C99,请使用gcc。
回复 支持 反对

使用道具 举报

发表于 2010-4-21 12:48:32 | 显示全部楼层
好像C99才支持在函数中间声明,否则你要把int a = 0; 放到前面去
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-21 13:02:45 | 显示全部楼层

楼上的都是高手

的确,把int a 放到结构体前面去,也不报错,vc6看来还真是有点老了,不知道后序版本的vc是否支持c99?
回复 支持 反对

使用道具 举报

发表于 2010-4-21 15:25:40 | 显示全部楼层
我倒是觉得挺好 c99的特性能不用就不用...嘿嘿 混用或不知道哪些是c99会出问题的...
回复 支持 反对

使用道具 举报

发表于 2010-4-22 01:30:30 | 显示全部楼层
vs 2010的VC 10支持C99 还支持C++0x的好多特性,比如匿名函数Lambda。GCC 4.5.x也值得期待。
回复 支持 反对

使用道具 举报

发表于 2010-4-22 11:01:45 | 显示全部楼层
Post by 没本;2084770
vs 2010的VC 10支持C99 还支持C++0x的好多特性,比如匿名函数Lambda。GCC 4.5.x也值得期待。
之前把NULL拿掉,现在又把nullptr拽回来。C++的拥趸们能不能解释一下。0的类型是long,NULL的类型是void*,强类型的C++也有迷惑时。
回复 支持 反对

使用道具 举报

发表于 2010-4-22 16:51:41 | 显示全部楼层
Post by realtang;2084833
之前把NULL拿掉,现在又把nullptr拽回来。C++的拥趸们能不能解释一下。


我是实用主义者,用的C++也只是个子集而已。无非STL/Boost部分库,自己不产生新模板,无OO崇拜。NULL?貌似我的程序里,C/C++代码里都没这个东西,我只用0。NULL在某些场合重定义的假设,只是某些理论家的梦呓罢了。

完全用C写程序太慢了。又不是特底层,对细节要求特高,内存要求特精细的话,用C,算了吧,有那码代码的时间我还不如干点别的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表