Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

int main()とint main(void)のC /C++の違い


C

Cプログラミング言語では、関数シグニチャにパラメータがない場合、入力として複数の引数を取ることができますが、C++では同じではありません。引数がC++でそのような関数に渡されると、コンパイルは失敗します。これが、int main()とint main(void)がCで同じである理由ですが、int main(void)の方が優れたアプローチであり、ユーザーが複数の引数をmain関数に渡すことを制限します。

例(C)

#include <stdio.h>
int main() {
   static int counter = 3;
   if (--counter){
      printf("%d ", counter);
      main(5);
   }
}

出力

2 1

例(C ++)

#include <iostream>
using namespace std;
int main() {
   static int counter = 3;
   if (--counter){
      cout << counter;
      main(5);
   }
}

出力

main.cpp: In function 'int main()':
main.cpp:10:13: error: too many arguments to function 'int main()'
main(5);
^
main.cpp:5:5: note: declared here
int main()
^~~~

  1. C /C++でのconstint*、const int * const、およびint const *の違いは?

    上記の記号は、次のことを意味します- int* - Pointer to int. This one is pretty obvious. int const * - Pointer to const int. int * const - Const pointer to int int const * const - Const pointer to const int また、-にも注意してください const int * And int const * are the same. const int * const And int const * const are the same.

  2. C ++での定義と宣言の違いは何ですか?

    C ++では、宣言と定義が混同されることがよくあります。宣言とは、(Cで)型、サイズ、および関数宣言の場合は任意の変数のパラメーターの型とサイズ、またはプログラム内のユーザー定義の型または関数についてコンパイラーに通知することを意味します。宣言の場合、どの変数のためにもメモリにスペースが予約されていません。 一方、定義は、宣言が行うすべてのことに加えて、スペースがメモリに追加で予約されることを意味します。 「定義=宣言+スペース予約」と言うことができます。 以下は宣言の例です- extern int a; // Declaring a