Cシリーズ:multiple markers at this lineのerrorについて


事例:本来はfile A.cで別のファイルfile Bを呼び出す.cの関数printmessageは、この呼び出しと呼び出される関係を明確にするためにfile Aにいます.cでは#includeでfile Bをcファイルは含まれていますが、コンパイル時にfile B.c中報:
  
Multiple markers at this line
      -syntax error before "..."
      -Syntax error

その後file A.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
"); }
fileB.c
=================================
#include <stdio.h>
#include <stdlib.h>

void printmessage();

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

上記の例はIDE:
    eclipse for c/c++ developers, Version: 3.4.2
Compiler:
    MinGW-5.1.4
を使用してインポートしたストロークVSラム速度のデータ点を示します.異なるプラットフォーム間の基準が異なるため、Dev++などの他のプラットフォームでは、VCに他の問題がある可能性があります.
開発環境の構築については、以下を参照してください.
   
http://justshare.iteye.com/blog/403104
   
http://snowolf.iteye.com/blog/401198
もう一つ重要なことは、C言語はプロセス向けであり、オブジェクトの概念がなく、各ファイル間の呼び出しは呼び出される関数によって関連付けられているため、
Cエンジニアリングでは同じ関数名を持つことはできません.つまり、1つのCエンジニアリングですべての関数名が唯一であることを確保しなければなりません(このルールは私のCを開発した同級生に聞いてから分かりましたが、それまではどうしても分かりませんでした.ああ、やはり対象向けの考えが祟っていますね).
注:JAVAの开発をしてきたので、オブジェクト向けの习惯がたくさん残っていて、急にCに転向して、不适応ですね.