关于D中 字符串的问题
|
player7
2007-04-20
最新版本的DMD 例程中,在 chello.d这个文件中,有这么一句;
MessageBoxA(null,"CHello.~this()",null,MB_OK); 它的原型是:int MessageBoxA(HWND, LPCSTR, LPCSTR, UINT); 而且:alias CHAR *LPCSTR; 看来直接传入字串常量是OK的,没问题。 在GOOGLECODE上搜了搜,似乎也都是这么用的。 只有在 字符串为变量时,才使用 toStringz() |
|
|
qiezi
2007-04-20
这种还是应该避免的。许多API都基于C的null结尾字符串,这个东西害人不浅,虽然省了内存,但一些使用长度前缀的字符串的语言为了兼容它会增加内存拷贝、增加内存使用、降低效率。即便是C运行库里面许多方法也是低效的,比如strlen,肯定不如使用长度前缀来得快。
|
|
|
oldrev
2007-04-20
不要依靠巧合编程
|

