关于Delphi下的三元运算符?

l0v3_y1n9 2011-12-11 11:10:59
两个问题:
第一个:
DWORD dwCopyLen = (strlen(argv[1])<BUF_SIZE) ? strlen(argv[1]) : BUF_SIZE;
这句在Delphi下应该怎么理解? 三元运算符? 请问delphi下是否有这种写法?

第二个:
const
szMsg = '测试';

var
pBuf: PAnsiChar;
begin
CopyMemory(pBuf, @szMsg, strlen(szMsg)); //@取szMsg的指针地址,编译出错,求解析.
end;
...全文
865 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzzwwz 2011-12-12
  • 打赏
  • 举报
回复
1、
Math和StrUtils中有IfThen函数模拟三元
bdmh 2011-12-12
  • 打赏
  • 举报
回复
(strlen(argv[1])<BUF_SIZE) ? strlen(argv[1]) : BUF_SIZE;
就是

if strlen(argv[1])<BUF_SIZE then
strlen(argv[1])
else
BUF_SIZE
kaikai_kk 2011-12-12
  • 打赏
  • 举报
回复
1.
D没有这个写法,意思是判断条件1,成立就返回第1个表达式,否则返回第2个
用if…then吧

2.
new(PBuf);
CopyMemory(pBuf, PAnsiChar(szMsg),sizeof(szMsg));
dispose(pbuf);

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧