0

最近,我的朋友让我帮助他完成他的编码任务。我尝试编译他的 C 代码以帮助他完成调试过程,但它没有编译,而是返回以下错误:

作业 3.c:12:错误:“随机”的类型冲突</p>

/usr/include/stdlib.h:224:错误:先前的“随机”声明在这里

作业 3.c:51:错误:“随机”的类型冲突</p>

/usr/include/stdlib.h:224:错误:先前的“随机”声明在这里

所以,我明白这意味着在 stdlib.h(头文件)中已经定义了一个“随机”函数,但我不明白为什么它为他编译得非常好。不同之处在于他使用的是代码块,而我使用的是我的 Mac OSX 终端 (GCC)。据我所知,两者都使用 GCC 编译器,所以我想知道为什么会有差异。任何澄清都会很棒。谢谢!

更新: 一些代码示例来解释错误。此处显示的 random() 用于第 12 行。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void readColsRows(int* cols, int* rows);
int** allocMemory(int* minima, int* maxima,int rows, int cols);
void random(int*** table, int rows, int cols);
void maxMinFinder(int** table, int* minima, int* maxima,int rows, int cols);
void printTable(int** table, int rows, int cols);

我不想把所有的代码都放在这里,因为它是用于家庭作业的。:X 但是,我认为 Jonathan Leffler 在下面的评论中可能已经回答了我的问题。谢谢!

4

2 回答 2

1

你几乎给自己答案:

标准库(如 /usr/include/stdlib.h 第 224 行所示)定义random

long     random(void);

而你这样做:

void random(int*** table, int rows, int cols);

显然,编译器标记了冲突。选择其他名称。该问题与代码块无关。

于 2013-06-03T06:01:42.900 回答
-1

在 Mac 上,某些头文件包含其他操作系统中不包含的其他头文件。例如,如果您iostream在 Macstdlib.h上包含,则也包含在内。在 Linux 上,情况并非如此。

于 2013-05-30T06:26:54.593 回答