gpt4 book ai didi

c - inttypes.h 头问题

转载 作者:行者123 更新时间:2023-11-30 17:26:49 27 4
gpt4 key购买 nike

nb:由于评论,这个问题已经被减少了很多次。下面列出了生成错误的最少量代码。 inttypes.h 文件是从这里下载的:ffMPEG "inttypes.h not found" error ),一开始就被认为是问题所在。

//tlvlist.c

static int32_t test(somestruct *a);

/* Private method, adds tlv object to the list which contains raw binary data. */
int32_t int32_t test(somestruct *a)
{
/* Some checks */
if(a == NULL || bytes == NULL)
return -1;

/* Check if list is full */
if(a->used == MAX_LIST_SIZE)
return -1;

/* Index to first free element in the list */
int iIndex = a->used;

// ...

return 0;
}

错误:

 tlvlist.c
c:\users\documents\visual studio 2012\projects\tlv list\tlv list\tlvlist.c(21): error C2143: syntax error : missing ';' before 'type'
c:\users\documents\visual studio 2012\projects\tlv list\tlv list\tlvlist.c(23): error C2065: 'iIndex' : undeclared identifier
c:\users\documents\visual studio 2012\projects\tlv list\tlv list\tlvlist.c(24): error C2065: 'iIndex' : undeclared identifier
c:\users\documents\visual studio 2012\projects\tlv list\tlv list\tlvlist.c(28): error C2065: 'iIndex' : undeclared identifier
c:\users\documents\visual studio 2012\projects\tlv list\tlv list\tlvlist.c(29): error C2065: 'iIndex' : undeclared identifier
c:\users\documents\visual studio 2012\projects\tlv list\tlv list\tlvlist.c(32): error C2065: 'iIndex' : undeclared identifier
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

最佳答案

显然,在 MSVS 中编译 C 文件时,您需要在函数开头的任何语句之前进行所有变量声明。例如:

int32_t Tlvlist_AddRawt(Tlvlist *a, uint8_t type, uint16_t size, const void *bytes)
{
/* Index to first free element in the list */
int iIndex;

/* Some checks */
if(a == NULL || bytes == NULL)
return -1;

iIndex = a->used;

...
}

我相信这是旧的 C89 格式,大多数 C 编译器现在使用 C99(或更高版本),这将允许在函数中的任何位置声明变量。将文件重命名为 CPP 是 MSVS 的另一个选项,无需将变量声明移动到函数顶部,尽管这可能会在代码中引发其他问题。

关于c - inttypes.h 头问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26637694/

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