2016-05-07 6 views
-2

IDEで "C"コンパイラを使用してコードをコンパイルしようとしています。しかし、これらの数行で何が問題なのか分かりません。C言語で文法エラーが発生しました

Code #1

エラー:syntax error near '='

Code #2

エラー:'_print': different length of parameter lists'_print':too many actual parameters

が、同じコードは、 "C++" コンパイラと完全に実行されます。私はちょうど "C"コンパイラでエラーが発生します。

誰も私にそれについて何か考えてもらえますか?

+5

CとC++は異なる言語であるためです。 Cは関数の引数のデフォルト値をサポートしていません。そしてコードを画像として投稿しないでください。あなたの質問に書式付きテキストとしてコードを貼り付けてください。 – kaylum

答えて

0

C++が行うようにC関数のオーバーロード、またデフォルト引数を持っていないので、あなたは異なっintlongを処理する必要がある場合、あなたはこのように、タイプごとに1つの機能が必要になります。

void print_int(int n, int base); 
void print_long(long n, int base); 

しかし、あなたの中にコード、あなただけint機能でlongバージョンを呼び出していることから、あなただけの1つの機能持つことができます。

void print(long n, int base); 

をし、それがintで呼び出された場合、引数は自動的にlongに昇格します。

int n = 123; 
print(n, 10); 
関連する問題