关于这个问题,我已经看了很多关于堆栈的帖子。它几乎总是一个简单的分号错误,或括号/括号不匹配。我不相信我的程序就是这种情况。我对这个特殊功能有问题:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
static char *macro_buf;
static unsigned int macro_buf_len;
static char *init_buf() {
if (macro_buf == 0) {
macro_buf_len = 200;
macro_buf = (char *) malloc(sizeof(char) * macro_buf_len);
macro_buf[0] = '\0';
}
return macro_buf;
}
错误报告函数定义的第一行。有趣的是,如果我删除这个功能,一切都编译好并正常运行!我已经检查过任何特殊的隐形字符,我已经重写了几次但无济于事。有什么明显的东西我不见了吗?
编辑: 更改我的功能名称后,一切都很好。我想假设这可能是我的一个头文件中已定义的函数?
编辑: 我忘了我使用的是同名的宏。
#define init_buf....
谢谢你们!这是我的第一个超过1000行的项目,而且管理起来非常困难。我现在不会忘记这个错误!