为什么文章上说在.h 文件里定义函数可以节省内存????
为什么文章上说在.h 文件里定义函数可以节省内存???? 问题点数:20、回复次数:32Top
1 楼Andy84920(你也不懂)回复于 2004-09-03 06:58:13 得分 1
节省内存?哪本书哪一页说的?
恐怕还会链接出问题吧...Top
2 楼liuleilover(Vietor)回复于 2004-09-03 08:00:58 得分 1
你所说的“.h 文件里定义函数”只能是内联函数,可对于内联函数的定义来说,为了提高执行速度,是以增加内存为代价的。Top
3 楼yjh1982(血精灵)回复于 2004-09-03 08:47:44 得分 0
么烂文章?Top
4 楼runall(龙行天下)回复于 2004-09-03 10:36:24 得分 0
没听说过Top
5 楼oCplus(C++)回复于 2004-09-03 10:56:23 得分 1
.h文件的意义在于把一些预定义的东西放在其中,把核心部分放在.cpp里
增加可读性
所以并不会节省内存Top
6 楼freshairfly(无知的虾米)回复于 2004-09-03 13:54:55 得分 1
你可能看错了吧Top
7 楼jkdfan()回复于 2004-09-03 18:57:03 得分 0
楼主肯定理解错误。Top
8 楼Atomictry(天影)回复于 2004-09-03 19:04:40 得分 0
看错了吧,内联倒是相反的。Top
9 楼SeeMin(于艇)回复于 2004-09-03 19:04:46 得分 0
真晕阿,写个程序格式就能省内存?Top
10 楼wwwooowww(熔点)回复于 2004-09-03 19:08:05 得分 0
我觉得是提高运行效率吧。因为一般再头文件中定义函数,要用inline关键字,即内联函数。编译器处理内联函数时:函数在调用时,就不用压栈,而是用函数体中的代码来代替函数调用。 从而提高了效率。节省内存倒是没有听说过。不知时那家之言。Top
11 楼gtkknd(gt)回复于 2004-09-03 19:23:48 得分 0
是西安周公的"嵌入式实时 OS Small Rtos51 原理及应用" 书中的!!!!!Top
12 楼FreeFice(庄鱼)回复于 2004-09-03 22:58:24 得分 1
我认为作者的意思是在.h文件里声明函数、公共变量可以节省内存,而不是定义函数。Top
13 楼eastsun()回复于 2004-09-03 23:12:14 得分 1
把作者拉出去毙了好了。
真是误人子弟。
Top
14 楼gtkknd(gt)回复于 2004-09-04 06:11:53 得分 0
我认为作者的意思是在.h文件里声明函数、公共变量可以节省内存,而不是定义函数。
----------------------------------------------------------------------
可能是这个意思.但为什么嫩?Top
15 楼sinhence(因为所以)回复于 2004-09-04 07:08:25 得分 0
不要断章取义哟!
请把作者完整的话说出来。Top
16 楼liyufeng1983(小蜗牛)回复于 2004-09-04 09:18:41 得分 1
是啊!楼主把作者完整的原话说出来!让大家看看到底是怎么一回事情。Top
17 楼abcdefu520(东风拖垃圾大队队长)回复于 2004-09-04 11:51:24 得分 1
不是还有一个不用.h
可以用 using namesc.. std(不知道写对了没有)
<<The object of programmer>> 这本书提到,用 using name.... std 来替代 .h
不知道是不是真的能节省内存呀,请大吓们谈谈呀。Top
18 楼purple_monday()回复于 2004-09-04 12:55:17 得分 1
楼主说详细点Top
19 楼Tycool(Xuco)回复于 2004-09-04 13:07:16 得分 0
关注阿Top
20 楼dafan(大帆)回复于 2004-09-04 14:15:23 得分 1
^_^,告诉你吧:using namespace std;Top
21 楼muymuy(muy)回复于 2004-09-04 16:34:19 得分 1
节省内存到没有听说过。
节省磁盘空间倒是可以的。
Top
22 楼liushu01(天涯若比邻)回复于 2004-09-04 17:49:41 得分 0
不可能吧,这样的事也有吗?Top
23 楼liushu01(天涯若比邻)回复于 2004-09-04 17:50:04 得分 0
什么宝典?Top
24 楼doulikeme(来去无踪)回复于 2004-09-04 17:52:53 得分 0
节省内存????没听说过。Top
25 楼haha52(执子之手,敛其半世癫狂;吻子之眸,遮其半世流离)回复于 2004-09-04 18:01:31 得分 0
UPTop
26 楼christanxw()回复于 2004-09-04 21:59:05 得分 0
ft!Top
27 楼LifeAndC(蓝色忧郁)回复于 2004-09-04 22:36:42 得分 1
不能理解,有人这么说?Top
28 楼CNXQS(天堂神曲(什么都不会,真无奈))回复于 2004-09-05 11:08:50 得分 1
没听过这个说法Top
29 楼nicewinds(伯伯)回复于 2004-09-05 11:55:00 得分 1
内联应该效率高,但是费内存吧。作者是谁,我以后也好防着点Top
30 楼gtkknd(gt)回复于 2004-09-05 19:53:04 得分 0
文章原话:
Small ROTOS51 使用静态方法建立任务,这样降低了任务的灵活性,但节省了RAM开销,使得Small ROTOS51 可以在小RAM 的CPU中运行。在Config.h中有类似程序清单4.15的代码,
条件编译保证这一段代码仅在Os_cpu_c.c中生效。
程序清单4.15 定义各个任务的初始PC指针
//任务定义
#ifdef IN_OS_CPU_C
extern void TaskA (void);
extern void TaskB(void);
extern void TaskC(void);
extern void TaskD(void);
void (*const TaskFunction[OS_MAX_TASKS])(void)={TaskA,TaskB,TaskC,TaskD};
#endif
//Top
31 楼FreeFice(庄鱼)回复于 2004-09-05 20:58:02 得分 1
在C代码设计中,使用.h文件,通常可以完成类宏操作——一种类似C++类的宏扩展,以达到函数多态与复用技术,C++为保证程序可读性与健壮性,通常建议不这样使用,而是用特定的类操作符class。
我们平常认为,.h文件完全可以忽略不用,是在很少用到宏的情况下,如果宏、条件编译比较多的话,.h文件通常会直接由预编译程序进行处理,并进行优化。这样做,要比直接写到.c/.cpp文件中效率要高些。对多个文件组合的程序、项目而言,节省代码空间和减少内存消耗是有帮助的。Top
32 楼applebomb(袋装苹果)回复于 2004-09-05 21:21:40 得分 5
作者的意思是说,放在.h而不是在在每个.c中写一次,这样重用而节约内存
晕~
Top




