gpt4 book ai didi

c - 误导性信息

转载 作者:太空狗 更新时间:2023-10-29 15:35:53 26 4
gpt4 key购买 nike

我不小心写了 foo ((struct Node* ) head); 而不是 foo ((Node* ) head);

然后我从编译器那里收到一条消息

应为“struct Node *”但参数类型为“struct Node *”

#include <stdio.h>
typedef struct NODE
{
char data;
struct NODE *next;
} Node;

void foo (Node *head){}

void bar (void *head)
{
// note:
foo ((struct Node* ) head);
}

int main(){

return 0;
}

这是误导,在第一种情况下不应该是 Node *struct NODE * 吗?

这条消息是什么意思?谁能澄清一下?

我能够重现它 here在故意输入错误之后也是如此。

编译器:gcc (GCC) 4.8.1

最佳答案

这是一个bug in GCC .你是对的,'expected' 应该是 struct NODE *Node *。就其值(value)而言,clang 提供了更好的信息:

example.c:13:8: warning: incompatible pointer types passing 'struct Node *' to
parameter of type 'Node *' (aka 'struct NODE *')
[-Wincompatible-pointer-types]
foo ((struct Node* ) head);
^~~~~~~~~~~~~~~~~~~~
example.c:8:17: note: passing argument to parameter 'head' here
void foo (Node *head){}
^
1 warning generated.

关于c - 误导性信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20290917/

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