| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1708 人关注过本帖
标题:关于数组长度问题
只看楼主 加入收藏
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 

这样说不对,如果说函数模板在另外一个文件中实现,然后在主文件中调用,那么主文件中肯定要有该模板函数的声明,那么主文件编译的时候就实例化了该函数模板的声明,所以知道是什么类型
反过来想,如果主文件不知道调用的一个函数的类型,那么怎么编译成目标文件?


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-05-30 14:24
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
aogun:
你是用QQ还是MSN啊?那样说起来方便一些

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-30 14:45
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
msn,angus_ag@msn.com,注意表明身份
qq基本不用

[此贴子已经被作者于2006-5-30 14:50:20编辑过]


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-05-30 14:50
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
ooooo,

sizeof is a compile-time operator that returns the size of a variable or data-type.

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-05-30 14:55
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
........是编译
因为模块在没编译前没有任何函数体,编译时才产生
在编译阶段,当发现用指定数据类型调用摸板时,就创建一个模版函数
我想大概是编译时语义检测器发现调用,然后代码生成器来完成函数(这里有点忘了)
wfpb,你忘了么,程序在生成可执行代码时已经让函数语句指向了被调函数语句,
也就是代码地址静态绑定.
另外,C++为了一个虚函数发明一个关键词才来特意做迟后编译
而这里根本不用,因为那样代价太大.所以函数只有虚函数是例外,为迟后联编.

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-05-30 15:15
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

呵呵,刚才停电,我又想了下,我把书上的意思误解了,我以为是把代码分两个部分,一个是头文件,实现文件;二个是main文件;然后编译以后连接,错想成:第一部分还不知道类型,第2部分才知道,所以连接以后运行时才知道什么类型。
想了下,这不关第一部分的事,只是main文件中对模板实力化,main中已经知道是什么type了,就可以知道怎么分配内存了,所以是编译时。
不知道理解正确了没

不过kai的话,牢记在心,sizeof is a compile-time operator that returns the size of a variable or data-type.知道了!


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-30 16:20
快速回复:关于数组长度问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027054 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved