CNDEV
CNDEV.ORG
当前在线
论坛
CBD
程序员情感CBD
程序员见面交流会
CBD开发区
Java/J2ME
.NET/C#
数据库
Delphi/BCB
Visual C
其它
修真养身
中国象棋
纪念日
谈钱太俗,还是投机吧
听音乐
iCosta
资源共享
一隅
好文共赏
看电影看美剧
待定
狗屎
雪域召唤
工作流
专业显摆区
语录
情感
批评与自我批评
爱情故事
发牢骚
看三点区
游戏
CNDEV-CS/WOW
浩宇长空
生活
家有XPH
我爱学英语
美食天地ORG
半调子体育迷
观澳园友邻
搞笑奇文
拍照片
我读书我存在
论坛系统
超级垃圾站
系统建议及BUG
系统测试
中国开发网
: 论坛:
程序员情感CBD
: 贴子 65842
Kaye
:
俺也觉得,只要没啥特别需要,数组好用,又快
[阅读: 539] 2004-12-17 03:42:02
<空>
相关信息:
从delphi到c,最不习惯的是字符串麻烦死了。不知道delphi的字符串做法是不是也算一种自动垃圾回收
(123字)
(
haitao
[908]
2004-12-17 10:44
)
顶!各位c/linux老手有什么好的建议?还有字符串拼凑也是
(27字)
(
haitao
[707]
2004-12-17 10:58
)
我喜欢c得字符串。高效,语义清晰。
(51字)
(
老玉米
[642]
2004-12-17 11:01
)
还是C++好,爱用啥用啥
(空) (
Kaye
[536]
2004-12-17 11:54
)
我说的C都是指如Cb不行,C++能作到也行--C++能很好的解决返回字符串的函数的实现?
(94字)
(
haitao
[778]
2004-12-17 12:23
)
c++你用string类不就爱返回啥返回啥了
(空) (
Kaye
[781]
2004-12-17 12:26
)
是Cstring吗?没敢用
(6字)
(
haitao
[605]
2004-12-17 13:26
)
不是,c++标准库里的string类,俺觉得好用
(空) (
Kaye
[581]
2004-12-17 13:31
)
有没有最简单的事例?msdn上列了一大堆成员函数
(10343字)
(
haitao
[890]
2004-12-17 13:58
)
简单的例子
(374字)
(
bjwf
[640]
2004-12-17 14:15
)
这样倒是真的挺省心,不过是不是多分配了一次内存?...如何拼凑多个字符串呢?
(327字)
(
haitao
[612]
2004-12-17 14:19
)
这个万万不能省,拼凑多个字符串用 + 或者 += 就行了.
(79字)
(
bjwf
[660]
2004-12-17 14:31
)
我是说该这么省:--
(237字)
(
haitao
[576]
2004-12-17 14:40
)
哦,这样似乎也有问题
(35字)
(
haitao
[601]
2004-12-17 14:44
)
你这个编著不过去,string 没有这个构造函数,另外 string::data 返回的是const char * ,不能用在sprintf的第一个参数
(空) (
bjwf
[632]
2004-12-17 14:45
)
我的省钱思路就是不用txt[256],而是先让string开256,直接写到string的256里去
(97字)
(
haitao
[951]
2004-12-17 14:53
)
..
(230字)
(
bjwf
[612]
2004-12-17 15:14
)
第一个问题有没有办法解决?Delphi似乎是用Result这个关键字解决的
(149字)
(
haitao
[1591]
2004-12-17 17:24
)
以前俺还在.net贴了个加了Format的::std::string的扩展。。。。其实就是把MFC里的CString::Format抄过来使了。。。
(空) (
Yxd
[718]
2004-12-17 15:03
)
嗯,这个不错,string最烦人的问题就是没有sprintf或format之类的成员函数
(空) (
bjwf
[650]
2004-12-17 15:09
)
你用C++Builder?用AnsiString,和Delphi的string一样
(空) (
王中王
[947]
2004-12-17 13:41
)
g++
(13字)
(
haitao
[600]
2004-12-17 13:46
)
没啥好办法,c++的话还能用stl来搞.函数分配调用者释放不是个好主意,再提供一个释放的函数比较好一点.
(空) (
bjwf
[625]
2004-12-17 11:01
)
也未必,局部用字符串分配的内存不值再写个函数
(空) (
玉楼
[488]
2004-12-17 11:06
)
char* s = strdup("time");
(空) (
玉楼
[591]
2004-12-17 11:04
)
strdup不是个好函数.
(空) (
bjwf
[824]
2004-12-17 11:06
)
简单
(空) (
玉楼
[505]
2004-12-17 11:06
)
char* a=strdup(mydate2str()); ? 之后要不要释放a所指的内容?
(空) (
haitao
[845]
2004-12-17 11:17
)
靠,直接用个数组完了,你要这么写c程序,会吐血的。
(空) (
老玉米
[603]
2004-12-17 11:19
)
数组是定长啊
(空) (
王中王
[510]
2004-12-17 11:19
)
一般情况下都够用,比如你存文件名, 不可能超过256个字节吧?
(空) (
老玉米
[551]
2004-12-17 11:22
)
每个字符串都去malloc,会死人的。没见过水这么写c的。
(空) (
老玉米
[663]
2004-12-17 11:26
)
俺也觉得,只要没啥特别需要,数组好用,又快
(空) (
Kaye
[538]
2004-12-17 11:42
)
正是因为要释放,所以我才觉得他不是个好函数.
(空) (
bjwf
[552]
2004-12-17 11:22
)
bjwf 的话一句顶千句
(空) (
没脾气2x
[632]
2004-12-17 11:26
)
问题是,当他不知道有多长,又不想用大数组,怎么办?
(43字)
(
玉楼
[628]
2004-12-17 11:31
)
我不是说不能malloc,我的意思是
(309字)
(
bjwf
[653]
2004-12-17 11:39
)
也有点道理
(空) (
玉楼
[464]
2004-12-17 11:43
)
这个有点对象的感觉了
(333字)
(
haitao
[681]
2004-12-17 12:16
)
标准C不支持这个吧:~Csomething()
(空) (
bjwf
[564]
2004-12-17 12:39
)
不限于C,不过对象的创建和释放会不会比字符串内存块的分配和释放还要开销大?
(空) (
haitao
[610]
2004-12-17 13:31
)
当然,new比malloc多了构造函数的调用
(空) (
bjwf
[776]
2004-12-17 13:50
)
我是指在堆上创建对象的情况
(空) (
bjwf
[571]
2004-12-17 13:53
)
这个不是最好,而是必须。
(35字)
(
老玉米
[571]
2004-12-17 12:21
)
静态库的不会.
(空) (
bjwf
[544]
2004-12-17 12:40
)
大的系统很少用静态库的。
(空) (
老玉米
[511]
2004-12-17 12:42
)
这样不行的吧
(空) (
bmkun
[497]
2004-12-17 11:22
)
一般的办法是这样:
(61字)
(
bjwf
[657]
2004-12-17 11:32
)
显式的分配内存,比较安全
(空) (
bmkun
[729]
2004-12-17 11:34
)
这么说的,都是很少写c程序的。
(24字)
(
老玉米
[565]
2004-12-17 11:37
)
除了代码难看,而且在任何平台上malloc和free都是相对比较耗时的操作
(空) (
bjwf
[882]
2004-12-17 11:40
)
确实很少用C了,我们做商业应用的不和硬件打交道,很少用
(空) (
bmkun
[540]
2004-12-17 11:42
)
问题就是想封装sprintf(txt, "%04d-%02d-%02d", 2004, 12, 20);
(195字)
(
haitao
[796]
2004-12-17 12:03
)
你的这个问题如果不是多线程系统的话可以这样来
(201字)
(
bjwf
[564]
2004-12-17 12:09
)
多线程系统的话呢?
(34字)
(
haitao
[797]
2004-12-17 12:11
)
bj所指是这段代码不是线程安全的
(空) (
bmkun
[609]
2004-12-17 12:13
)
我就是想知道又要线程安全的情况下,怎么作这个函数?
(8字)
(
haitao
[719]
2004-12-17 12:18
)
加个锁呗.要是多线程的话还是调用者分配空间,传给函数
(170字)
(
bjwf
[568]
2004-12-17 12:38
)
不是说了,不是多线程的话才可以的
(空) (
bjwf
[558]
2004-12-17 12:33
)
他想改变输出格式,不如直接加define段
(空) (
bmkun
[607]
2004-12-17 12:11
)
#define不是说不太好嘛
(24字)
(
haitao
[495]
2004-12-17 12:17
)
复杂点就这样干吧。。。
(444字)
(
Yxd
[561]
2004-12-17 11:52
)
奇技淫巧型
(空) (
bjwf
[503]
2004-12-17 11:58
)
嘿嘿。。。。
(空) (
Yxd
[478]
2004-12-17 12:30
)
没看明白
(537字)
(
haitao
[585]
2004-12-17 12:09
)
就是一个示意,函数都是空的,也就是你同样可以像C++一样以对象的方式写一个c里的string这样的东西。。
(空) (
Yxd
[615]
2004-12-17 12:29
)
哦,是模拟类的构造和释放...另外,对象的创建和释放会不会比字符串内存块的分配和释放还要开销大?
(空) (
haitao
[600]
2004-12-17 13:30
)
都是用一样的allocator的话,应该就差不多,通常情况下与大小相关(?),还要看对象创建、释放时做了什么工作没有吧,我想。。。
(29字)
(
Yxd
[598]
2004-12-17 13:45
)
我是担心对象的生、死会不会象线程的生、死一样有额外的、甚至系统级的开销?
(28字)
(
haitao
[574]
2004-12-17 13:50
)
有额外的开销,但是比起线程的生死的开销来讲要小好几个数量级
(空) (
bjwf
[507]
2004-12-17 13:54
)
哦,那就放心一点。比起字符串空间的分配和释放呢?
(47字)
(
haitao
[727]
2004-12-17 14:01
)
简单、快速的话就直接分配、释放字符串类型吧。。。另外题外我认为。。。
(167字)
(
Yxd
[629]
2004-12-17 14:08
)
那就是说:调用者分配内存,传入指针,最后返回指针。但是,1、2、
(67字)
(
haitao
[707]
2004-12-17 14:23
)
欢迎光临本社区,您还没有登录,不能发贴子。请在
这里登录