- 主题:我们很多同事都是完全不用unique_ptr,一律shared_ptr
pascal指针和C指针除了写法不一样,也没什么区别。C指针能做的pascal指针都能做。
【 在 ylh1969 的大作中提到: 】
: 讨厌指针为啥不用Pascal呢?那个语言跟c差不多,就是指针是固定的。
: 当年为单位考察编程语言,测试了7,8种语言,包括pascal,就是因为指针不灵活,落选。
--
FROM 36.63.115.*
*p++=*s++;
pascal怎么写?
【 在 zhangxp024 的大作中提到: 】
: pascal指针和C指针除了写法不一样,也没什么区别。C指针能做的pascal指针都能做。
:
--
FROM 223.104.196.*
AI给的答案:
Pascal 没有 前置 ++,也没有 指针解引用 *,
while s[i] <> #0 do begin
p[j] := s[i];
inc(i);
inc(j);
end;
要说不灵活,也对!
【 在 ylh1969 的大作中提到: 】
: *p++=*s++;
: pascal怎么写?
--
修改:zhangxp024 FROM 183.161.94.*
FROM 183.161.94.*
C 语言的 *p++ = *s++; 可以拆成3个语句 *p=*s; p++; s++; Pascal和一些有指针的语言缺的是指针运算。
【 在 zhangxp024 的大作中提到: 】
: AI给的答案:
: Pascal 没有 前置 ++,也没有 指针解引用 *,
: while s[i] <> #0 do begin
: ...................
--
FROM 218.108.210.*
同感,而且有时不需要自动释放,就不能用智能指针
【 在 hgoldfish 的大作中提到: 】
: 在我看来,智能指针、各种泛型编程,都是大量使用回调函数的后遗症。本来就不应该存在。
:
--
FROM 124.64.18.*
【 在 ylh1969 的大作中提到: 】
: *p++=*s++;
: pascal怎么写?
Delphi里面
p^ := s^;
Inc(p);
Inc(s);
指针单加单减都可以,麻烦的是不能做p-s之类,所以灵活性比C要差,
对编译器也不友好(指针相减直接编译成sub rdi,rsi之类更快)。
硬搞强制类型转换实现指针减法,也不是不可以,代码会很难看。
需要极致效率的场合,基本上一定是指针比数组下标寻址快,
这方面C/C++没有替代品。从古早的Turbo Pascal到现在的Delphi,
需要拼效率都是一言不合嵌汇编,不是没有道理的。
--
修改:Jacqueline FROM 116.230.17.*
FROM 116.230.17.*
cpp是吧劲用错放向了,增加的乱七八糟复杂度远大于解决的问题,就该好好做库,让大家轻松调库实现功能
--
FROM 124.64.18.*
两个方括弧,如果不是字节型,要做乘法运算,性能差太多。
【 在 zhangxp024 的大作中提到: 】
: AI给的答案:
: Pascal 没有 前置 ++,也没有 指针解引用 *,
: while s[i] <> #0 do begin
: ...................
--
FROM 112.224.166.*
是。40年前,ibmpc,4.77M主频。
在那机器上写程序,很在乎这点开销。
【 在 Jacqueline 的大作中提到: 】
:
: Delphi里面
: p^ := s^;
: ...................
--
FROM 112.224.166.*
看我的字符串组装程序:
p+=sprintf(p,"format",,,);
用于生成SQL语句。
p总是指向字符串的尾部,下一个成分直接接上。
小心越界,这个c++能解决吗?
在c里,只能把buffer准备足够。
【 在 Jacqueline 的大作中提到: 】
:
: Delphi里面
: p^ := s^;
: ...................
--
修改:ylh1969 FROM 112.224.166.*
FROM 112.224.166.*