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

C / C ++の「intmain()」と「intmain(void)」の違いは?


主な関数定義には2つのタイプがあることが時々わかります。 int main()およびint main(void)。違いはありますか?

C ++では、違いはありません。 Cでも両方とも正しいです。しかし、2番目のものは技術的に優れています。関数が引数を取っていないことを指定します。 Cでは、引数で関数が指定されていない場合、引数なし、または任意の数の引数を使用して呼び出すことができます。これらの2つのコードを確認してください。 (これらはC ++ではなくCであることに注意してください)

#include<stdio.h>
void my_function() {
   //some task
}
main(void) {
   my_function(10, "Hello", "World");
}

出力

This program will be compiled successfully

#include<stdio.h>
void my_function(void) {
   //some task
}
main(void) {
   my_function(10, "Hello", "World");
}

出力

[Error] too many arguments to function 'my_function'

C ++では、両方のプログラムが失敗します。したがって、これから、int main()はCで任意の数の引数を使用して呼び出すことができることが理解できます。ただし、int main(void)は引数を許可しません。


  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