格式'%ld'需要类型'long int',但参数3的类型为"TEST"

the*_*tna -1 c gcc-warning

这里TEST是一个结构指针.结构包含整数.什么是正确的因素呢?TEST结构如下.我使用gcc作为编译器.

     typedef struct TEST_HELP{
                 int value;                
      } *TEST, TEST_NODE;
Run Code Online (Sandbox Code Playgroud)

Gra*_*row 5

我猜你有类似的东西:

TEST ptr;
// set ptr to something
ptr->value = 5;
printf( "%ld", ptr ); // expect 5 to be printed
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为printf不知道如何打印TEST_HELP结构.您需要在其中打印数据:

TEST ptr;
// set ptr to something
ptr->value = 5;
printf( "%ld", (long)ptr->value ); // expect 5 to be printed
Run Code Online (Sandbox Code Playgroud)

你应该%d用于int价值观.%ldlong值,因此是演员.