C语言中结构的逻辑运算符

Ben*_*ard 1 c logic struct if-statement

假设我有两个不同的结构,Struct1和Struct2.它们都有不同的元素.如果我像这样比较它会发生什么:

if((Struct1) && (Struct2))
{
    doSomething();
}
Run Code Online (Sandbox Code Playgroud)

我刚刚发现了一些具有这种逻辑的代码,并且想知道发生了什么.谢谢!

编辑: Struct1和Struct2都指向两个不同的结构,而不是结构本身.

cni*_*tar 5

在一个结构中使用ifC是非法的语法 - 一致的编译器不会接受它.换句话说:你不能在布尔上下文中使用结构.

最有可能在你的代码中 - 如果它真正的代码 - Struct1不是结构,而是(可能)指针或其他东西.在这种情况下,如果两者都是非NULL,则将采用if.