这是一个关于c语言中变量重复定义的问题?

sxhljh 2002-08-26 09:00:54
我在一个程序中重复定义了两个全局变量:

/* main.c */

int global;
int global;
void main()
{
printf("this ia a c program\n");
}

/* the end */

可是编译时并未抱错,请问这是怎么回事?
...全文
224 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingofvc 2002-08-26
  • 打赏
  • 举报
回复
我记得tc下
char *p="abcd";
p[2]='e';
都能通过呢!
另外 我写一个24点的程序的时候用随机数tc下老是出错 (出现控制以为的数据 但是我确实对其进行控制) 后来在vc下从来没有问题(同样的控制)

tc的bug太多 或者说 优化的太多了
sxhljh 2002-08-26
  • 打赏
  • 举报
回复
下面程序:

#include <stdio.h>
int global;
int global;

void main()
{
global=10;
printf("this is a c program.\n");
}

在vc中为重复定义错误,而在tc2中仍然能通过。各位老大,能帮我一下,用你们的tc2调试以下吗,只需2分钟时间。难道是我的tc有问题?在下先谢谢了!
bsbnsync 2002-08-26
  • 打赏
  • 举报
回复
没有用到变量可能编译不出错.
冰封千年箭 2002-08-26
  • 打赏
  • 举报
回复
但,如果重复的分配空间,而不用。就没有报错的问题。。。
blue_coco 2002-08-26
  • 打赏
  • 举报
回复
全局量在程序运行时只为其分配空间。
你付值就出错了!
sxhljh 2002-08-26
  • 打赏
  • 举报
回复
谢谢个位,我也认为应该出错,可是我试了居然通过了,所以特向各位请教。我用的是tc2,win2k环境。
step_by_step 2002-08-26
  • 打赏
  • 举报
回复
如果是一个正确的编译器的话肯定有错误的。应该报重复定义的错误。你的编译器竟然没有报错?把它认掉吧
sjf331 2002-08-26
  • 打赏
  • 举报
回复
赋值试试,看是不是有冲突。
lisding 2002-08-26
  • 打赏
  • 举报
回复
有 warning! 吧!
冰封千年箭 2002-08-26
  • 打赏
  • 举报
回复
如果处在同一级上,重复定义,应该没有问题啊,关键是理解定义的意义。。。
冰封千年箭 2002-08-26
  • 打赏
  • 举报
回复
怎么两个全局的都一样啊。。。???不会吧。太低级的错误了。。
chenshi 2002-08-26
  • 打赏
  • 举报
回复
我用的是Borland Turbo C3.0在重复定义时就报错了。
•Error NONAME00.CPP 3: Variable 'global' is initialized more than once
sxhljh 2002-08-26
  • 打赏
  • 举报
回复
gcc中编译也完全正确。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧