假设我有两个不同的结构,Struct1和Struct2。它们都有不同的元素。
如果我这样比较它们会怎么样:
if((Struct1) && (Struct2))
{
doSomething();
}
我刚找到一些符合这个逻辑的代码,想知道发生了什么。
谢谢!
编辑:Struct1和Struct2都是指向两个不同结构的指针,而不是指向结构本身。
最佳答案
要实现这一点,必须有指针,而不是结构也就是说,代码可能是:
void somefunc(struct structA *Struct1, struct structB *Struct2)
{
if (Struct1 && Struct2)
{
doSomething(Struct1, Struct2);
}
}
这将在使用指针之前检查它们都不是空的不能直接比较结构,因此如果代码是:
void somefunc(struct structA Struct1, struct structB Struct2)
{
if (Struct1 && Struct2)
{
doSomething(Struct1, Struct2);
}
}
你会有一个语义错误;你只是不能把整个结构和任何东西进行比较。
变量的大小写是一个惯例。
关于c - C语言中的逻辑运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14075137/