关于cJSON编译报错的问题

ighack 2016-05-05 03:54:31
我在windows下用CodeBlocks编译我的文件是可以正常运行的
但在linux下
gcc cJSON.c cJSON.h run.c -o run -lm
cJSON.h:58: 错误:expected ‘)’ before ‘sz’
cJSON.h:59: 错误:expected ‘;’ before ‘void’
报这个错,我认为cJSON.h应该是没有问题。但不知道如何解决

typedef struct cJSON_Hooks {
void *(*malloc_fn)(size_t sz);
void (*free_fn)(void *ptr);
} cJSON_Hooks;
上面就是报错的那两句话
...全文
1540 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Snow__Sunny 2020-05-09
  • 打赏
  • 举报
回复 1
引用 3 楼 ighack 的回复:
#include包含的顺序错误了 要先包函stdlib.h stdio.h
牛批!
kzncu30 2017-08-10
  • 打赏
  • 举报
回复
4L是正解!
yukunlinquan 2017-02-06
  • 打赏
  • 举报
回复
不知道楼主问题解决没有,可否分享一下?
小网虫free 2016-08-02
  • 打赏
  • 举报
回复
你在.h里添加string头文件
ighack 2016-05-25
  • 打赏
  • 举报
回复 1
#include包含的顺序错误了 要先包函stdlib.h stdio.h
ighack 2016-05-05
  • 打赏
  • 举报
回复
引用 1 楼 sdghchj 的回复:
size_t未定义。 #ifdef __linux__ typedef unsigned int size_t #endif
如果我在cJSON.h添加这些 会提示在stddef.h里已经定义过了 gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
sdghchj 2016-05-05
  • 打赏
  • 举报
回复
size_t未定义。 #ifdef __linux__ typedef unsigned int size_t #endif

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧