最近,我的朋友让我帮他完成编码任务。我尝试编译他的C代码来帮助他完成调试过程,但它没有编译,而是返回了以下错误:
作业3.c:12:错误:'随机'的冲突类型
/usr/include/stdlib.h:224:错误:先前声明'随机'在这里
作业3.c:51:错误:'随机'的冲突类型
/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在下面的评论中可能已经回答了我的问题。谢谢!
答案 0 :(得分:1)
你差点给自己答案:
标准库(如第224行/usr/include/stdlib.h中所示)将random
定义为
long random(void);
而你这样做:
void random(int*** table, int rows, int cols);
显然,编译器标记存在冲突。选择其他名称。该问题与代码块无关。
答案 1 :(得分:-1)
在Mac上,某些头文件包含其他操作系统中未包含的其他头文件。例如,如果您在Mac上包含iostream
,则也会包含stdlib.h
。在Linux上,情况并非如此。