関数宣言帯域パラメータと非帯域パラメータの違い


次の2つのコードの違いを説明します.
コード1
void fun()
{
printf("hello
"); } int main() { fun(1,2); return 0; }

コード2
void fun(void)
{
printf("hello
"); } int main() { fun(1,2); return 0; }

コードのコンパイルが通過すると、実行に問題がなく、helloを出力します.
コード2コンパイルエラーerror:too many arguments to function‘fun’
これは、関数インタフェースを宣言または定義するときにパラメータがなければ、コンパイラがパラメータが合法かどうかを自発的にチェックしないことを示しています.
そのため、プログラミングの时、规范の使い方はすべてパラメータを加える必要があって、コンパイラはやっとパラメータが合法かどうかを検査して、良いコードは
小さいところから始めて、このようにやっといくつかのわけのわからない問題を導入することはできません!