我正处于创建C编译器的开始阶段。我只是想做一些简单的错误处理。
有人可以解释为什么我仍然得到:
"' abort'的冲突类型"
即使我已经为abort()定义了函数原型并且签名匹配了吗?
#include <stdio.h>
#include <string.h>
#include "Concat.c"
/* Constant declarations */
const char TAB = '\t';
/* Variable Declarations */
char look; /* Lookahead character */
/* Declaring function prototypes */
void getChar();
void error(char*);
void abort(char*);
/* Read new character fron input stream */
void getChar(){
read(look);
}
/* Report an error */
void error(char* s) {
// printf("%s\n", s);
perror(s);
}
/* Report an error and halt (return in C) */
void abort(char *s) {
perror(s);
return;
}
/* Main Program */
int main(int argc, char *argv[]) {
/* tab test */
printf("%c\n", TAB);
/* error test */
char *p;
p = "Error Test";
error(p);
/* abort test */
p = "Abort Test";
abort(p);
}
答案 0 :(得分:3)
7.22.4.1
#include <stdlib.h> _Noreturn void abort(void);
函数概要
{{1}}。 。