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

时间:2011-06-21 10:51:54

标签: c gcc-warning

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

     typedef struct TEST_HELP{
                 int value;                
      } *TEST, TEST_NODE;

1 个答案:

答案 0 :(得分:5)

我猜你有类似的东西:

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

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

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

您应该将%d用于int值。 %ld用于long值,因此是演员。