错误:在<stdio.h>上的令牌之前

时间:2017-05-29 18:19:54

标签: c compiler-errors

我一直在尝试编译我的代码,但在编译时,我收到错误:

hw02.c:1:9:错误:在'&lt;'令牌包括&#34之前预期'=',',',';','asm'或'属性' ; stdio.h中

这是我试图运行的代码。我是使用C编码的新手,我不确定是不是因为我不需要包含或者我遗漏了一些非常简单的东西。

//hw 02.q2.c
#include <stdio.h>
#define subm(a,b) ((a)-(b))
#define cubem(a) (a*a*a)
#define minm(a,b) (((a)<=(b))?(a):(b))
#define oddm(a) (((a)%2==0)?0:1)
int main()
 {
int a = 5, b = 7;
printf("%d - %d : %d", a, b,  subf(a, b));
printf("%d - %d : %d", a, b, subm(a, b));
printf("%d - %d : %d", a, b, subf(a++, b--));
printf("%d - %d,: %d", a, b,  subm(a++, b--));

printf("%d,", cubef(a));
printf("%d,", cubem(a));
printf("%d,", cubef(--a));
printf("%d", cubem(--a));

printf("%d,", minf(a, b));
printf("%d,", minm(a, b));
printf("%d,", minf(--a, --b));
printf("%d", minm(--a, --b));

printf("%d,", oddf(a));
printf("%d,", oddm(a));
printf("%d,", oddf(a++));
printf("%d", oddm(a++));

return 0;
}int subf(int a, int b) {
return a - b;
}
int cubef(int a) {
return a * a *a;
}
int minf(int a, int b) {
if (a <= b) {
    return a;
}
else {
    return b;
}
}
int oddf(int a) {
if (a % 2 == 0) {
    return 0;
}
else {
    return 1;
}
}

非常感谢!

2 个答案:

答案 0 :(得分:2)

首先,您必须使用函数原型或将所有函数放在main之前,因为当编译器编译您的文件并遇到未声明的函数时,它会引发一个

  

函数'xyz'的隐式声明

其次,您应该使用.footer { position: absolute; bottom: 0; left: 0; width: 100%; ... } 语法而不是/* comments */语法,因为//comments是c ++样式。

答案 1 :(得分:0)

也许这是一个愚蠢的观察,但你做过尝试:

/*w 02.q2.c*/
#include <stdio.h>

而不是:

//hw 02.q2.c
#include <stdio.h>

Check this