社区
C语言
帖子详情
----------各位高手,我想到一个难题.-----------
femalelover
2006-04-26 09:55:07
C++库,Windows的库一个个又笨又重.
理由一, 引入一个#include<string> 编译出来的程序比直接使用char*时要大得多;
理由二, 硬件再快, 内存再大, 速度快与体积小永远是程序员的追求.比如游戏程序, 做游戏的菜鸟应该感觉得到自己的垃圾小游戏跑起来耗资源之多简直无敌.
....省略N个.
难题就是: 这些系统库应该是能改造的,保留特定程序中用得到的,剔除那些冗余的. 可是,怎么入手呢?
...全文
252
7
打赏
收藏
----------各位高手,我想到一个难题.-----------
C++库,Windows的库一个个又笨又重. 理由一, 引入一个#include 编译出来的程序比直接使用char*时要大得多; 理由二, 硬件再快, 内存再大, 速度快与体积小永远是程序员的追求.比如游戏程序, 做游戏的菜鸟应该感觉得到自己的垃圾小游戏跑起来耗资源之多简直无敌. ....省略N个. 难题就是: 这些系统库应该是能改造的,保留特定程序中用得到的,剔除那些冗余的. 可是,怎么入手呢?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
plamlover
2006-04-27
打赏
举报
回复
你过于当心了....不知道你有没有看过那些头文件(没有用到的东西都不会编译的,之所以复杂,因为它很完善)...你的想法是多余的
如果你一定要自己去实现那些函数,只会让你的程序漏洞百出(如果你不高手的话)
adintr
2006-04-27
打赏
举报
回复
库中没用到的函数不会连接到你的 exe 中,不用担心
femalelover
2006-04-27
打赏
举报
回复
找不到建议没关系,楼上总算提到了本书.
DLL与EXE都是二进制,但由于DLL做出来后必须为以后的被调用做准备. 所以与EXE在生成过程上是有区别的.
code_tin
2006-04-27
打赏
举报
回复
至于楼上提到的解决方案
如果要重构库,那就比较麻烦了
不过我们还是可以从减少include的使用入手
exceptional c++有这方面的论述
有些时候我们只是需要一些结构的定义
这个时候就不用include整个头文件了
把定义申明一下就可以了.
code_tin
2006-04-27
打赏
举报
回复
DLL的编译原理和EXE一样
你没有用到的东西不会被加到里面去
楼主说的加上string就会大许多的情况只有MINGW下面才会有
使用了string整个exe会大400k左右
这个是由于GCC连接器的缺陷
MINGW官方FAQ里面也提到了这点,不过没说解决方案
你用VC2003以后的就不会有这个问题
文件最多大10k左右.
femalelover
2006-04-27
打赏
举报
回复
EXE中没有你没用到函数?
----------------------
EXE中没什么影响,但一般的.dll和.lib中就有影响了. 尤其是.lib
改造库据我所知并不少见, 尤其以游戏程序为多,专业的的DX游戏开发,里面的DX头文件等常常都在MS发布的基础上有所改动.
逸学堂
2006-04-27
打赏
举报
回复
C++类库,windows类库,为了保持通用和兼容型,有时候必须做效率的牺牲。但是即使这样对于大多用户来说,他依然是高效率的。至少99%程序员写不去既有兼容性,又有效率,同时体积还小的类库来。
分析一个软件效率高低,不要用想当然。要用不同的分析软件不断的测试,才可能找到真正的瓶颈。真正分析出效率瓶颈后,再考虑解决问题方案。
HDU6287:口算训练( 二分 + 思维 + 分解质因数 )
小Q非常喜欢数学,但是他的口算能力非常弱。因此他找到了小T,给了小T
一个
长度为n的正整数序列a1,a2,...,an,要求小T抛出m个问题以训练他的口算能力。每个问题给出三个正整数l,r,d,小Q需要通过口算快速判断al×al+1×...×ar−1×ar是不是d的倍数。小Q迅速地回答了出来,但是小T并不知道正确答案是什么,请写
一个
程序帮助小T计算这些问题的正确答案。第一行包含
一个
正整数T(1≤T≤10),表示测试数据的组数。
HDU - 6287 口算训练 (二分+思维)
题意:给你n个数,和m个询问,每个询问有
一个
l和r和d,现在问你,从【l,r】区间的乘积是不是d的倍数。思路:对于
一个
数(k)是不是d的倍数这类问题,我们可以对这两个数分解质因数,之后看看k的质因数和d的质因数之间的关系,如果满足对于d的每
一个
质因数个数,在k中都有出现过,且k的出现次数要大于等于d的出现次数,这个就是满足的,举个例子,36 和 6 ,36的质因数有 2,2,3,3,6的质因数有 ...
HDU-6287 口算训练(二分+思维)
口算训练 小Q非常喜欢数学,但是他的口算能力非常弱。因此他找到了小T,给了小T
一个
长度为nn的正整数序列a1,a2,...,an要求小T抛出mm个问题以训练他的口算能力。 每个问题给出三个正整数l,r,dl,r,d,小Q需要通过口算快速判断al×al+1×...×ar−1×ar是不是d的倍数。 小Q迅速地回答了出来,但是小T并不知道正确答案是什么,请写
一个
程序帮助小T计算这些问题的正确答案。...
hdu6287 口算训练(思维+筛+二分)
题目 给你n个数,a[], m个询问,每次询问l,r,d 问[l,r]的乘积,是不是d的倍数 思路来源 钱神 题解 和之前做的
一个
筛的题很像, 就再总结一下吧 先都分解质因数, 然后对于数ai,ans[ai的质因数q]内放入位置i 注意相同的质因数得重复放入 然后对于d的每个质因数p, 二分查询ans[p]内[l,r]的数有多少, 如果大于等于d的质因数p的数量就可行,...
hdu 6287 口算训练(二分+质因数分解+思维)
口算训练 Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others) Total Submission(s): 1968 Accepted Submission(s): 423 Problem Description 小Q非常喜欢数学,但是他的口算能力非常弱。因此他找到了...
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章