[问题] 一段 arguement 问题

楼主: gecer (gecer)   2017-07-02 13:11:05
execlp("ls", "ls", (char *)NULL )
请问版上的大大们 上面语法 (char *)Null是什么意思
作者: james732 (好人超)   2017-07-02 13:15:00
强制转型要符合function的要求
作者: steve1012 (steve)   2017-07-02 13:41:00
Excel 接一串字串 然后你最后一个参数要放null他才知道停了但是他只接char pointer 所以这边做个转型
作者: Killercat (杀人猫™)   2017-07-02 15:13:00
这算C++09的余毒 往后传nullptr就不用这样转了不过说真的(char *)有点多余 应该不用加也能过才对
作者: LPH66 (-6.2598534e+18f)   2017-07-02 18:32:00
楼上正好在这里不对, 因为 execlp 是可变参数第三参数之后是被 ... 抓起来的, 所以放 NULL 会变成数字 0必须要真的传进一个指标才行, 所以才需要 (char*) 转型https://linux.die.net/man/3/execlp> since these are variadic functions, this pointer must> be cast (char *) NULL.所以理论上单传 nullptr 也是错的, 也需要转型(因为 nullptr 的型态是 std::nullptr_t)
作者: uranusjr (←這人是超級笨蛋)   2017-07-02 21:12:00
传 "" 可以吗
作者: steve1012 (steve)   2017-07-02 23:24:00
字符null记得是'\0'空字串=\=null
作者: james732 (好人超)   2017-07-02 23:39:00
原来是可变参数,我没先查就推文了QQ
作者: uranusjr (←這人是超級笨蛋)   2017-07-03 00:58:00
@steve1012 啊这里就不是要字符 null 啊...不过根据文件 (刚刚懒得看想说应该会有人直接回答) 它应该就是需要 NULL pointer 所以空字串也是不行
作者: s25g5d4 (function(){})()   2017-07-05 00:31:00
我还想了一下 excel 为什么要吃 null... 原来是 exec 啊
作者: Killercat (杀人猫™)   2017-07-05 01:48:00
ouch...居然犯了这低能错误 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com