C系列: 关于multiple markers at this line的error

事例:本来想在fileA.c中调用另外一个文件fileB.c中的函数printmessage,为了明确这种调用与被调用的关系,于是我就在fileA.c中通过#include把fileB.c文件包含进来,但是编译的时候fileB.c中报:
Multiple markers at this line
-syntax error before "..."
-Syntax error

后来在fileA.c中把#include "fileB.c"语句去掉,编译通过
fileA.c
=================================
#include <stdio.h>
#include <stdlib.h>

/*因为调用fileB.c中的printmessage函数,本想把它包含进来,但会报:multiple markers at this line错误,注释后编译通过*/
//#include "fileB.c"

/* printmessage函数在fileB.c中已声明,在fileA.c中还要声明,否则报:implicit declaration of function "printmessage"*/
void printmessage();

void ghellops();

void ghellops() {
printmessage(); //调用
printf("fold aaa.c\n");
}

fileB.c
=================================
#include <stdio.h>
#include <stdlib.h>

void printmessage();

void printmessage() {
printf("fileB.c printmessage\n");
}

以上例子在IDE:
eclipse for c/c++ developers, Version: 3.4.2
Compiler:
MinGW-5.1.4
中调试成功。由于不同平台之间的标准不一样,所以在其它平台比如Dev++, VC可能会有其它问题。
开发环境的搭建请参考:
[url]http://justshare.iteye.com/blog/403104[/url]
[url]http://snowolf.iteye.com/blog/401198[/url]

还有一个事项非常重要,由于C语言是面向过程的,它没有对象的概念,各个文件之间调用与被调用靠函数来关联,所以[b]在C工程里是不可以有相同的函数名的,即在一个C工程中所有的函数名都要确保唯一[/b](这项规则还是问过我的一个开发C的同学之后才明白的,在这之前我怎么也想不明白。唉,还是面向对象的思想在作祟啊)。
注:由于一直做JAVA开发,保留了很多面向对象的习惯,突然之间转向C,很不适应呐!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值