搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ Linux GCC 对数组到底是怎么处理的?
标题:
Linux GCC 对数组到底是怎么处理的?
只看楼主
flyxkj
等 级:
论坛游民
帖 子:15
专家分:66
注 册:2012-1-31
第
11
楼
得分:10
回复 9楼 q332010372
VS有个模拟运行的功能,可以看到越界的错误!Linux还不是有看越界的工具valgrind(很强大,内存泄露和读写越界都可以检测!)
2012-04-16 21:01
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
12
楼
得分:10
以下是引用
q332010372
在2012-4-16 20:49:26的发言:
编译器是不会在编译期间检查,但是在发生越界的时候,应该要报错才对。这段代码在 windows vs 10.0 里面是会出错的,但在linux gcc 里面并不会出错
那是运行时系统报错,不是编译时编译器报错。如果编译开关设置了Debug模式,那么编译器会注入调试代码,在出错时启动调试器,如果设置了Release,就不会有调试代码,而靠操作系统处理。看来你没有学过C程序运行的原理,以为是编译器在运行程序。
授人以渔,不授人以鱼。
2012-04-16 21:03
q332010372
等 级:
论坛游民
帖 子:52
专家分:61
注 册:2010-7-27
第
13
楼
得分:0
回复 12楼 TonyDeng
嗯,我只知道,一个C源程序,需要经过 预处理、前端语法和语义分析、后端代码生成、优化、转化为汇编程序、链接载入内存,然后CPU根据CS段,读取指令,执行指令。
windows 用多了,总喜欢用 windows 的习惯来要求 linux, debug 用多了,感觉什么都自带 debug
2012-04-16 21:18
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
14
楼
得分:0
Windows Console程序的执行本质上跟Linux之类是一样的。
授人以渔,不授人以鱼。
2012-04-16 21:26
q332010372
等 级:
论坛游民
帖 子:52
专家分:61
注 册:2010-7-27
第
15
楼
得分:0
回复 14楼 TonyDeng
最近在补汇编,你那有好点的 AT&T 风格的资料吗?初级的
布鲁姆那本特想买,只是已经没得买了,除非去订,不过那价格好贵,网上的PDF太不清晰了,感觉看多了近视又得加深几十度...
2012-04-16 21:33
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
16
楼
得分:0
我没有。
授人以渔,不授人以鱼。
2012-04-16 21:35
q332010372
等 级:
论坛游民
帖 子:52
专家分:61
注 册:2010-7-27
第
17
楼
得分:0
回复 16楼 TonyDeng
当我没问
2012-04-16 21:40
17
2/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-365877-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.468740 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved