首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于Delphi下的三元运算符?解决方案

2012-02-20 
关于Delphi下的三元运算符?两个问题:第一个:DWORD dwCopyLen (strlen(argv[1])BUF_SIZE) ? strlen(argv

关于Delphi下的三元运算符?
两个问题:
第一个:
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;

[解决办法]
1.
D没有这个写法,意思是判断条件1,成立就返回第1个表达式,否则返回第2个
用if…then吧

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

[解决办法]
(strlen(argv[1])<BUF_SIZE) ? strlen(argv[1]) : BUF_SIZE;
就是

if strlen(argv[1])<BUF_SIZE then
strlen(argv[1]) 
else
BUF_SIZE
[解决办法]
1、
Math和StrUtils中有IfThen函数模拟三元

热点排行