gpt4 book ai didi

c - 需要左值作为赋值的左操作数

转载 作者:太空宇宙 更新时间:2023-11-04 00:51:58 25 4
gpt4 key购买 nike

我不想以追加模式打开文件或根据 $flag 删除它的所有内容

static void do_redirect(int filedes, const char *filename, int flag){
int rc;
int fd;

flag == 1 ? fd = open(filename, O_CREAT|O_RDWR|O_TRUNC, 0644) :
fd = open(filename, O_CREAT| O_RDWR, 0644);

}

为什么我需要 llvalue 作为赋值的左操作数?

最佳答案

因为优先。表达式隐含在括号中

(flag == 1 ? fd = open(filename, O_CREAT|O_RDWR|O_TRUNC, 0644) : fd) = open(filename, O_CREAT| O_RDWR, 0644);

并且条件表达式的值不是左值。

flag == 1 ? (fd = open(filename, O_CREAT|O_RDWR|O_TRUNC, 0644)) : 
(fd = open(filename, O_CREAT| O_RDWR, 0644));

或者在 open 调用中移动条件表达式。

关于c - 需要左值作为赋值的左操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15437241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com