|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 在编程学习过程中遇到的一些很低级的问题,请大侠赐教!
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1839
人关注过本帖
标题:
在编程学习过程中遇到的一些很低级的问题,请大侠赐教!
只看楼主
加入收藏
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
31
楼
收藏
得分:0
没有,没见过有人这样写。
授人以渔,不授人以鱼。
2015-01-03 14:19
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
32
楼
收藏
得分:0
在vc中测试的结果:
1.如果变量仅被声明而没有初始化,但在代码中又使用这个变量,则编译时直接报错,编译不通过。
2.如果变量仅被声明而没有初始化,但在代码中没有使用这个变量,则这个变量被废除,等于不存在。
3.如果变量被声明,然后在代码中赋值,则是在运行中值压栈。
4.如果变量在定义时初始化,结果与3相同,即表明赋值初始化与运行时赋值是一样的。
在其他编译器中不知道。
授人以渔,不授人以鱼。
2015-01-03 14:26
举报帖子
使用道具
赠送鲜花
longwu9t
等 级:
小飞侠
威 望:
6
帖 子:732
专家分:2468
注 册:2014-10-9
第
33
楼
收藏
得分:0
查了一下网上的资料main内的static有这么用途
程序代码:
int
main(
void
) {
static
int
a[
100000
][
11
];
return
0
; }
用来在堆上分配栈上不能满足的内存空间
不知道除此之外还有什么用途?
Only the Code Tells the Truth K.I.S.S
2015-01-03 14:41
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
34
楼
收藏
得分:0
回复 33楼 longwu9t
那为什么不直接在外部申请呢?要把代码弄晦涩了呢?
授人以渔,不授人以鱼。
2015-01-03 14:45
举报帖子
使用道具
赠送鲜花
longwu9t
等 级:
小飞侠
威 望:
6
帖 子:732
专家分:2468
注 册:2014-10-9
第
35
楼
收藏
得分:0
回复 34楼 TonyDeng
是的 竾觉着是这样的
还不如声明个全局变量
只不过多了个作用域隔离的作用反而让代码读起来不清晰
Only the Code Tells the Truth K.I.S.S
2015-01-03 14:49
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
36
楼
收藏
得分:0
static在普通底层函数中用的,起把变量可见性局限在局部的作用,函数级别越高,这种作用越小,像main()这种最高级的函数,就等于置在模块全局之中。即使是局部变量,在main()中也应尽量少用,人家的main()很短的,哪有这里那么多新人那样长。
授人以渔,不授人以鱼。
2015-01-03 14:57
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
37
楼
收藏
得分:0
以下是引用
longwu9t
在2015-1-3 14:49:33的发言:
是的 竾觉着是这样的
还不如声明个全局变量
只不过多了个作用域隔离的作用反而让代码读起来不清晰
我常说有人爱玩代码、玩高深,就是指这种,毫无必要的炫耀“技术”。
授人以渔,不授人以鱼。
2015-01-03 15:00
举报帖子
使用道具
赠送鲜花
zklhp
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
38
楼
收藏
得分:0
以下是引用
TonyDeng
在2015-1-3 14:16:37的发言:
再改27楼的代码是这样:
#include
#include
int main(void)
{
int x;
return EXIT_SUCCESS;
}
; Listing generated by Microsoft (R) Optimizing Compiler Version 17.00.61030.0
TITLE
F:\Projects\Visual Studio 2012\Projects\test\test11\test11.cpp
.686P
.XMM
include listing.inc
.model
flat
INCLUDELIB OLDNAMES
EXTRN
@__security_check_cookie@4:PROC
PUBLIC
_main
; Function compile flags: /Ogtp
; File f:\projects\visual studio 2012\projects\test\test11\test11.cpp
;
COMDAT _main
_TEXT
SEGMENT
_main
PROC
; COMDAT
; 6
:
int x;
; 7
:
return EXIT_SUCCESS;
xor
eax, eax
; 8
: }
ret
0
_main
ENDP
_TEXT
ENDS
END
这个变量被直接废掉了。
你这些栗子都是编译优化的情况 那还有不优化的呢 没有说服力
2015-01-03 15:08
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
39
楼
收藏
得分:0
没人发布程序是带调试信息的,也没有人靠带着调试模式写程序而认为那是实际效果的。
授人以渔,不授人以鱼。
2015-01-03 15:11
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
40
楼
收藏
得分:0
带调试信息,是把所有代码都保留着,哪怕它是没用的,这个时候就需要为这些东西开辟空间,只是为了给你看到而已,但在这种模式下得到的结论,并非程序在实际中的效果,所以是没用的。其实我写程序很少靠调试器的,原因也在这里。
授人以渔,不授人以鱼。
2015-01-03 15:16
举报帖子
使用道具
赠送鲜花
46
4/5页
1
2
3
4
5
快速回复:
在编程学习过程中遇到的一些很低级的问题,请大侠赐教!
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.025173 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved