
Main()コンピュータプログラミングにおいて、エントリポイントとは、プログラムの実行が開始され、プログラムがコマンドライン引数にアクセスできる場所を指します。[検証失敗] [1]
プログラムの実行を開始するために、ローダーまたはオペレーティング システムはエントリ ポイントに制御を渡します (ブート中は、オペレーティング システム自体がプログラムです)。これは、ロード時(および存在する場合は動的リンク時) から実行時への移行を示します。
一部のオペレーティングシステムやプログラミング言語では、エントリポイントは言語のサポート関数のセットであるランタイムライブラリにあります。ライブラリコードはプログラムを初期化し、制御をプログラム本体に渡します。他の場合には、プログラムがランタイムライブラリ自体を初期化することもあります。[2]
単純なシステムでは、実行は最初のステートメントから始まり、これはインタープリタ言語、単純な実行形式、およびブートローダで一般的です。その他の場合、エントリ ポイントは、絶対アドレスまたは相対アドレス (オフセット)である可能性のある他の既知のメモリ アドレスにあります。
あるいは、プログラムの実行は、プログラミング言語やオペレーティングシステムによって定義された慣例的な名前、または呼び出し元が指定した名前のいずれかで、名前付きポイントから開始することができます。多くのCファミリ言語では、これはと呼ばれる関数です。そのため、エントリポイントはメイン関数mainと呼ばれることがよくあります。[3]
JavaなどのJVM言語では、エントリポイントはと呼ばれる静的メソッドです。C #などのCLI言語では、エントリポイントはと呼ばれる静的メソッドです。[4]mainMain
使用法
エントリ ポイントは、ソース コードと実行可能ファイルの両方に適用されます。ただし、日常のソフトウェア開発では、プログラマーはエントリ ポイントをソース コードでのみ指定するため、エントリ ポイントはよく知られています。実行可能ファイルのエントリ ポイントは、実際のオペレーティング システムのアプリケーション バイナリ インターフェイス(ABI) に依存し、コンパイラーまたはリンカーによって生成されます (ABI によって固定されていない場合)。リンクされた他のオブジェクト ファイルにもエントリ ポイントがある場合があり、後でリンカーが実行可能ファイルのエントリ ポイントを生成するときに使用されます。
エントリ ポイントは、メソッドで使用されるローカル変数として、コマンド引数、変数、またはその他の情報を渡すことができますMain()。この方法では、プログラムの実行時に特定のオプションを設定し、プログラムによって解釈することができます。多くのプログラムでは、これを別の方法として使用して、さまざまな設定を構成したり、単一のプログラムを使用してさまざまなアクションを実行したりしています。
コンテンポラリー
今日の一般的なプログラミング言語やオペレーティング システムのほとんどでは、コンピュータ プログラムには通常、エントリ ポイントが 1 つしかありません。
C、C++、D、Zig、Rust、Kotlinプログラムでは、これはという名前の関数mainです。Javaではという名前の静的メソッドです(ただし、呼び出し時にクラスを指定する必要があります)。C #ではという名前の静的メソッドです。[5] [6]mainMain
多くの主要なオペレーティング システムでは、標準の実行可能形式には単一のエントリ ポイントがあります。UnixおよびLinuxなどのUnix 系システムで使用されるExecutable and Linkable Format (ELF)では、エントリ ポイントはELF ヘッダーの フィールドに指定されます。GNU コンパイラ コレクション(gcc) では、リンカーが使用するエントリ ポイントは シンボルです。 同様に、Microsoft Windowsで使用されるPortable Executable形式では、エントリ ポイントはCOFFから継承された フィールドによって指定されます。COM ファイルでは、エントリ ポイントは 0100h の固定オフセットにあります。
e_entry_startAddressOfEntryPoint
シングルエントリポイントパラダイムの例外はAndroidです。Androidアプリケーションには単一のエントリポイントがなく、特別な機能はありません。代わりに、システムが必要に応じてロードして実行できる重要なコンポーネントmain(アクティビティとサービス)があります。 [7]
時々使用される手法として、ファット バイナリがあります。これは、異なるターゲット用の複数の実行可能ファイルを 1 つのファイルにパッケージ化したものです。最も一般的には、これは単一の全体エントリ ポイントによって実装されます。これはすべてのターゲットと互換性があり、ターゲット固有のエントリ ポイントに分岐します。別の手法としては、個別の実行可能ファイルを個別のフォークに格納し、それぞれに独自のエントリ ポイントを持たせ、オペレーティング システムによって選択するというものがあります。
歴史的
歴史的に、またVMSやOS/400などの現代のレガシー システムでは、コンピュータ プログラムには多数のエントリ ポイントがあり、それぞれがプログラムのさまざまな機能に対応しています。VMS のシステム全体、およびPL/IおよびMACROプログラムで使用されるエントリ ポイントを示す通常の方法は、実行可能イメージの名前の末尾にドル記号($)で区切ってエントリ ポイントを追加することです(例: ) 。
directory.exe$make
Apple Iコンピュータも、ある程度これを使用しました。たとえば、Apple I のBASICの代替エントリ ポイントにより、誤ってリセット ボタンが押された場合でも BASIC プログラムが使用可能になります。[説明が必要]
出口ポイント
一般に、プログラムはオペレーティング システムに戻るかクラッシュすることでいつでも終了できます。インタープリタ言語のプログラムはインタープリタに制御を返しますが、コンパイル言語のプログラムはオペレーティング システムに戻る必要があります。そうしないと、プロセッサはプログラムの終了を超えて実行を継続し、未定義の動作が発生します。
通常、プログラムには単一の終了ポイントは指定されません。ただし、他の場合には、ランタイムは、プログラムが常に単一の終了ポイントを介して構造化された方法で終了することを保証します。これは、ランタイム自体がクラッシュしない限り保証されます。これにより、atexitハンドラーなどのクリーンアップ コードを実行できます。これは、メイン関数から戻ることによってプログラムを終了することを要求するか、特定の終了関数を呼び出すか、ランタイムが例外またはオペレーティング システム シグナルをキャッチすることによって実行できます。
プログラミング言語
多くのプログラミング言語では、main関数はプログラムの実行を開始する場所です。関数はプログラムの機能を高レベルで編成することを可能にし、通常はプログラムの実行時にプログラムに与えられたコマンド引数にアクセスできます。
main 関数は、通常、プログラムの起動時に実行される最初のプログラマー作成関数であり、ランタイム環境( crt0または同等のもの) に含まれるシステム固有の初期化から直接呼び出されます。ただし、一部の言語では、 C++グローバル オブジェクトのコンストラクターなど、main の実行前にユーザー作成関数を実行できます。
他の言語、特に多くのインタープリタ型言語では、実行はプログラムの最初のステートメントから始まります。
以下に、プログラミング言語の非網羅的なリストを示します。メイン エントリ ポイントを定義する方法について説明しています。
オーストラリア
APLでは、ワークスペースがロードされると、「quad LX」(潜在式)変数の内容が APL 式として解釈され、実行されます。
C および C++
CおよびC++では、メイン関数の関数プロトタイプは次のいずれかと同等である必要があります。
int main ( void ); int main ();
int main ( int argc , char ** argv ); int main ( int argc , char * argv [] ); int main ( int argc , char ** argv , char ** env );
// より具体的には C の場合
// ISO C 標準 5.1.2.2.1 には従いません
// ただし、µC に依存する組み込みプログラミングでは、この形式も使用されます
void main ( void );
メイン関数は、アプリケーション プログラマーにとってエントリ ポイント (アプリケーションのエントリ ポイントまたはメイン エントリ ポイント) のように見えます。システム プログラミングでは、プログラムに関する詳細情報が公開され、他の場所 (初期化手順内、またはスタンドアロン プログラムのリセット割り込みベクター内) でエントリ ポイントが指定されます。
パラメータ、引数カウント、引数ベクトル[ 8] は、それぞれ プログラムのコマンドライン引数の数と値を指定します。との名前は、 C で有効な任意の識別子にすることができますが、これらの名前を使用するのが一般的な慣例です。C++ では、名前は文字通りに解釈され、厳密な準拠が必要な場合は、パラメータリストの "void" は省略されます。[9] C および C++ 標準では、他のプラットフォーム依存の形式も許可されていますが、C++ では戻り値の型は常に である必要があります。[10]たとえば、Unix ( POSIX.1ではない) とWindowsには、プログラムの環境 を与える 3 番目の引数があり、それ以外の場合はでを通じてアクセスできます。
argcargvargcargvintgetenvstdlib.h
int main ( int argc 、char ** argv 、char ** envp );
macOSなどのDarwinベースのオペレーティングシステムには、実行バイナリへのパスなど、OSが提供する任意の情報を含む4番目のパラメータがあります。[11]
int main ( int argc 、char ** argv 、char ** envp 、char ** apple );
メイン関数から返される値はプロセスの終了ステータスEXIT_SUCCESSになりますが、C 標準では 2 つの値(従来は 0)と のみに特定の意味が与えられていますEXIT_FAILURE。その他の戻り値の意味は実装定義です。戻り値がプログラマによって定義されていない場合は、関数return 0;の最後に暗黙的にmain()がコンパイラによって挿入されます。この動作は C++ 標準で必須です。
argcは非負であり、 はヌルポインタargv[argc]であることが保証されています。慣例により、 および で指定されるコマンドライン引数には、が 0 より大きい場合、最初の要素としてプログラム名が含まれます。ユーザーがコマンド " " を入力すると、シェルはプロセスを および で初期化します。などでプロセスが表示される名前が であるように、デーモンや、インタープリタまたは仮想マシン内で実行されるプログラム( はホスト実行可能ファイルの名前) などの一部のプログラムは、通常はシステムコールによって、 argv を変更してより説明的な を提供することを選択する場合があります。
argcargvargcrm filermargc = 2argv = {"rm", "file", NULL}argv[0]pstopargv[0]argv[0]exec
このmain()関数は特別なので、通常、すべての C および C++ プログラムではこれを 1 回だけ定義する必要があります。
宣言されている場合、main()外部リンケージがあるかのように宣言する必要があります。staticまたは宣言することはできませんinline。
C++ では、main()はグローバル名前空間(つまり::main) に存在する必要があり、オーバーロードできず、メンバー関数になることもできません(ただし、名前は他に予約されていません)。また、他の名前空間のメンバー関数、クラス、列挙体、または非メンバー関数に使用できます。C++ では (C とは異なり) を再帰的にmain()呼び出すことはできず、そのアドレスを取得することもできません
。
C#
C#で書かれたプログラムを実行すると、CLRは.entrypoint、引数を取らないか、型の引数を1つ取りstring[]、戻り値の型がvoidまたはである、ILディレクティブでマークされた静的メソッドを検索しintて実行します。[12]
static void Main (); static void Main ( string [] args ); static int Main (); static int Main ( string [] args );
コマンドライン引数はargs、Java の場合と同様に で渡されます。Main()整数を返す のバージョンでは、C と C++ の両方と同様に、プロセスの終了ステータスとして環境に返されます。
C#7.1以降では、メソッド内で非同期実行を可能にするエントリポイントのシグネチャMain()が4つ追加されました。[13]
静的非同期タスクメイン()静的非同期タスク< int >メイン()静的非同期タスクメイン(文字列[])静的非同期タスク< int >メイン(文字列[])
および型Taskは、およびTask<int>の非同期版です。メソッド内で
非同期 (キーワード) を使用できるようにするには、 が必要です。voidintasyncawait
クリーン
Clean は、グラフ書き換えに基づく関数型プログラミング言語です。初期ノードには名前が付けられ、それが世界を変更するStart場合は型 になり、プログラムが削減後の結果のみを出力する場合は固定の型になります。
*World -> *World Start
開始:: * World -> * World開始world = startIO ...
あるいはもっと簡単に
開始::文字列開始= "Hello, world!"
実行可能ファイルを生成するためにどのオプションを使用するかをコンパイラに指示します。
コモンリスプ
ANSI Common Lisp では main 関数は定義されていません。代わりに、ソース ファイルのコードが上から下まで読み込まれ、評価されます。ただし、次のコードはmain 関数 をエミュレートします。
( defun hello-main () ( format t "Hello World!~%" ))
(こんにちはメイン)
だ
Dでは、メイン関数の 関数プロトタイプは次のいずれかのようになります。
void main (); void main (文字列[]引数); int main (); int main (文字列[]引数);
コマンドライン引数はargs、C# や Java の場合と同様に で渡されます。main()整数を返す のバージョンでは、C と C++ の両方と同様に、プロセスの終了ステータスとして環境に返されます。
ダーツ
Dart は、 Web アプリケーションやモバイル アプリケーションの構築によく使用される汎用プログラミング言語です。他の多くのプログラミング言語と同様に、Dart には Dart プログラムの開始点として機能するエントリ ポイントがあります。エントリ ポイントは、プログラムの実行時に最初に実行される関数です。Dart では、エントリ ポイントは通常、 という名前の関数ですmain。Dart プログラムが実行されると、Dart ランタイムは という名前の関数を探してmain実行します。プログラムの起動時に実行される予定の Dart コードはすべて、main関数に含める必要があります。以下は、Dart の簡単な関数の例ですmain。
void main () { print ( "Hello, world!" ); }
この例では、main関数はプログラムの実行時に単にテキストをHello, world!コンソールに出力します。このコードは、Dart プログラムの実行時に自動的に実行されます。
main関数はDart プログラムのデフォルトのエントリ ポイントですが、必要に応じて別のエントリ ポイントを指定できることに注意することが重要です。これは@pragma("vm:entry-point")、Dart のアノテーションを使用して行うことができます。ただし、ほとんどの場合、main関数は Dart プログラムに使用するエントリ ポイントです。
フォートラン
FORTRANにはメインのサブルーチンや関数はありません。代わりに、PROGRAM次に示すように、最初の行にステートメントを使用して、プログラムユニットがメインプログラムであることを指定できます。このPROGRAMステートメントは再帰呼び出しには使用できません。[14]
PROGRAM HELLO
PRINT * , "Cint!" END PROGRAM HELLO
IBM System/360や後継メインフレームなどの Fortran の一部のバージョンでは、PROGRAM ステートメントがサポートされていません。他のソフトウェア メーカーの多くのコンパイラでは、PROGRAM ステートメントなしで Fortran プログラムをコンパイルできます。このような場合、SUBROUTINE、FUNCTION、または BLOCK DATA ステートメントが出現しない非コメント ステートメントを持つモジュールは、メイン プログラムと見なされます。
グナット
GNATを使用すると、プログラマーは という名前の関数を書く必要がありませんmain。単一のサブプログラムを含むソース ファイルを実行可能ファイルにコンパイルできます。ただし、バインダーは C スタイルの main 関数を含み、エクスポートするパッケージ を作成しますada_main。
行く
Goプログラミング言語では、プログラムの実行はmain関数から始まる。package main
パッケージメイン
「fmt」をインポートする
func main () { fmt . Println ( "Hello, World!" ) }
Go では、標準ライブラリの外部から引数や戻りコードにアクセスする方法はありません。これらにはそれぞれ、パッケージに含まれている とos.Argsを介してアクセスできます。
os.Exit"os"
ハスケル
Haskellプログラムには、何らかの型 に対して、main型 の値にバインドされた名前が含まれている必要があります。[15]これは通常 です。はモナドであり、純粋に機能的なコードの観点から副作用を整理します。 [16]値は、プログラムによって行われた副作用のある計算を表します。 で表される計算の結果は破棄されます。そのため、通常は が型 を持ち、これは計算結果の型が であることを示します。単位型には情報が含まれていません。
IO ttIO ()IOmainmainmainIO ()()
main :: IO () main = putStrLn "Hello, World!"
コマンドライン引数は には与えられませんmain。 などの別の IO アクションを使用して取得する必要がありますSystem.Environment.getArgs。
ジャワ
Javaプログラムはクラスのメインメソッド[17] [18] [19] [20]から実行を開始します。メインメソッドには次のいずれかのメソッド見出しがあります。
パブリック静的void main ( String [] args )パブリック静的void main ( String ... args )パブリック静的void main ( String args [] ) void main ()
コマンドライン引数は で渡されますargs。C および C++ と同様に、名前 " main()" は特別です。Java のメイン メソッドは値を直接返しませんが、System.exit()メソッドを使用して値を渡すことができます。
C とは異なり、プログラム名は に含まれませんargs。これは、メイン メソッドを含むクラスの名前であるため、既にわかっているからです。また、C とは異なり、Java の配列には要素の数を追跡するフィールドがあるため、引数の数を含める必要もありません。
メイン関数はクラス内に含める必要があります。これは、Java ではすべてがクラス内に含まれる必要があるためです。たとえば、 Java のhello worldプログラムは次のようになります。
パブリッククラスHelloWorld { public static void main ( String [] args ) { System . out . println ( "Hello, world!" ); } }
このプログラムを実行するには、コンパイルされたクラス ファイルがjava HelloWorld存在するディレクトリでを呼び出す必要があります。または、実行可能なJARファイルは、マニフェスト ファイルを使用して、ユーザーの観点からファイルシステムに依存しない方法でエントリ ポイントを指定します。
HelloWorld.class
ロゴ
FMSLogoでは、ロードされたプロシージャは実行されません。実行するには、次のコードを使用する必要があります。
procnameに ... ; 起動コマンド(print [Welcome]など) 終わり
make "startup [procname]
この変数はstartupアクションの起動リストに使用されますが、規則では、アクションを実行するプロシージャが呼び出されます。このプロシージャの名前は任意です。
オカムル
OCaml には関数がありませんmain。プログラムは上から下へ評価されます。
コマンドライン引数は、という名前の配列で使用可能でありSys.argv、終了ステータスはデフォルトで 0 です。
例:
print_endline 「こんにちは世界」
パスカル
Pascalでは、メイン プロシージャはプログラム内で唯一名前のないブロックmainです。Pascal プログラムは C、C++、または Java プログラムよりも厳密なボトムアップ順序でプロシージャと関数を定義するため、メイン プロシージャは通常、プログラム内の最後のブロックになります。Pascal では、名前 " " や同様の名前
に特別な意味はありません。
プログラムHello (出力) ; begin writeln ( 'Hello, world!' ) ; end .
コマンドライン引数は でカウントされParamCount、 によって文字列としてアクセス可能でParamStr(n)あり、n は 0 から までですParamCount。
ユニットまたはモジュールをサポートする Pascal のバージョンには、それぞれに名前のないブロックが含まれる場合があり、これはモジュールの初期化に使用されます。これらのブロックは、メイン プログラムのエントリ ポイントが呼び出される前に実行されます。
パール
Perlにはmain 関数はありません。ステートメントは上から下へ実行されますが、ブロック内のステートメントはBEGIN通常のステートメントの前に実行されます。
コマンドライン引数は、特殊な配列 で使用できます@ARGV。C とは異なり、@ARGVにはプログラム名 ( ) は含まれません$0。
PHP の
PHP には「main」関数がありません。PHP スクリプトの最初の行から、関数ヘッダーでカプセル化されていないコードは、見つかるとすぐに実行されます。
パイク
Pikeの構文は、C および C++ の構文に似ています。実行は から始まりますmain。" " 変数は、プログラムに渡された引数argcの数を保持します。" " 変数は、プログラムに渡された引数に関連付けられた値を保持します。
argv
例:
int main ( int argc 、配列(文字列) argv )
パイソン
Pythonプログラムは、スクリプト言語でよくあるように、上から下へ評価されます。エントリ ポイントはソース コードの先頭です。定義は使用の前に記述する必要があるため、プログラムは通常、定義を先頭に、実行するコードを末尾 (インデントなし) に配置するように構造化されます。これは、Pascal などの ワンパス コンパイラのコードに似ています。
mainあるいは、プログラムを直接実行するときに実行されるコードを含む明示的な関数を使用してプログラムを構成することもできますが、プログラムをモジュールとしてインポートして関数を呼び出すことによって呼び出すこともできます。これは、プログラムが実行されたときに内部変数が に__name__設定されるが__main__、モジュールとしてインポートされたときには に設定される(その場合はモジュール名に設定される)という次の慣用句によって実行できます。この構造には多くのバリエーションがあります。[21] [22] [23]
インポート システム
def main ( argv ):
n = int ( argv [ 1 ] )
プリント( n + 1 )
__name__ == ' __main__ 'の場合:
sys.exit ( main ( sys.argv ) )
このイディオムでは、名前付きエントリ ポイントの呼び出しはmain明示的であり、オペレーティング システムとのやり取り (引数の受け取り、システム終了の呼び出し) はライブラリ呼び出しによって明示的に行われ、最終的には Python ランタイムによって処理されます。これは、慣例に基づいてランタイムによって
暗黙的に実行される C とは対照的です。
QB64
QB64言語にはメイン関数がないため、関数またはサブルーチン内にないコードが上から下の順に最初に実行されます。
「Hello World! a =" ; a = getInteger ( 1.8 d ): a を印刷する
function getInteger ( n as double ) getInteger = int ( n ) end function
コマンドライン引数(存在する場合)は、 COMMAND$関数を使用して読み取ることができます。
dim shared commandline as string commandline = COMMAND$
'スペースで区切られた複数のコマンドライン引数は、COMMAND$(n) commandline1 = COMMAND$ ( 2 )を使用して読み取ることができます。
ルビー
Rubyには、明確な main 関数はありません。代わりに、class .. endまたはmodule .. endスコープの外側に記述されたコードは、特別な " " オブジェクトのコンテキストで実行されますmain。このオブジェクトには、 を使用してアクセスできますself。
irb(main):001:0>自分
=> メイン
次の特性があります:
irb( main ) : 002:0> self.class = > Object irb(main):003:0> self.class.ancestors = > [Object, Kernel, BasicObject]
classまたはスコープの外部で定義されたメソッドはmodule、" " オブジェクトのプライベート メソッドとして定義されます。" "mainのクラスは であるため、このようなメソッドはほとんどすべてのオブジェクトのプライベート メソッドになります。
mainObject
irb(main):004:0> def foo irb(main):005:1> 42 irb(main):006:1> end => nil irb(main):007:0> foo => 42 irb(main):008:0> []. foo NoMethodError: private メソッド `foo' が []:Array に対して呼び出されました (irb):8 from /usr/bin/irb:12:in `<main>' irb(main):009:0> false . foo NoMethodError: private メソッド `foo' が false:FalseClass に対して呼び出されました (irb):9 from /usr/bin/irb:12:in `<main>'
コマンドライン引数の数と値は、ARGV定数配列を使用して決定できます。
$ irb /dev/tty foo バー
tty(main):001:0> ARGV
ARGV
=> ["foo", "bar"]
tty(main):002:0> ARGV.size
ARGV.size
=> 2
の最初の要素にはARGV、ARGV[0]Cのように実行されたプログラムの名前ではなく、最初のコマンドライン引数が含まれます。プログラムの名前は$0またはを使用して取得できます$PROGRAM_NAME。[24]
Python と同様に、以下を使用できます。
if __FILE__ == $PROGRAM_NAME # ここに「main」コードを記述するend
呼び出し時にファイルが指定された場合にのみコードを実行しますruby。
さび
Rust では、プログラムのエントリ ポイントは という名前の関数です。通常、この関数はまたは というmainファイル内にあります。
main.rslib.rs
// `main.rs` 内
fn main () { println! ( "Hello, World!" ); }
さらに、Rust 1.26.0以降では、main関数は以下を返す場合がありますResult。[25]
fn main () -> Result < (), std :: io :: Error > { println! ( "Hello, World!" );
Ok (()) // 内容が `()` である、値 `Ok` の型 `Result`、つまり空のタプルを返します。}
迅速
Xcode Playground で実行すると、[26] Swiftはスクリプト言語のように動作し、上から下へステートメントを実行します。トップレベルのコードが許可されます。
// HelloWorld.プレイグラウンド
hello = "hello"、
world = "world"とします。
helloWorld = hello + " " + worldとします。
print ( helloWorld ) // こんにちは世界
Swiftで書かれたCocoaおよびCocoa Touch@NSApplicationMainベースのアプリケーションは、通常、それぞれおよび属性で初期化されます@UIApplicationMain。これらの属性の目的は、Objective-Cプロジェクトmain.mの ファイルと同じです。つまり、 のインスタンスを作成する[27]を呼び出す関数を暗黙的に宣言します。[28]次のコードは、Cocoa TouchベースのiOSアプリを初期化し、そのアプリケーションデリゲートを宣言する
デフォルトの方法です。mainUIApplicationMain(_:_:_:_:)UIApplication
// アプリデリゲート.swift
UIKitをインポートする
@UIApplicationMain
クラス AppDelegate : UIResponder 、 UIApplicationDelegate {
var window : UIWindow ?
func application ( _ application : UIApplication 、 didFinishLaunchingWithOptions launchOptions : [ UIApplication.LaunchOptionsKey : Any ]?) - > Bool { trueを返す}
}
ビジュアルベーシック
Visual Basicでは、プロジェクトにフォームが含まれていない場合、スタートアップ オブジェクトはMain()プロシージャになることがあります。Command$関数は、オプションで、プログラムの起動に使用されるコマンド ラインの引数部分にアクセスするために使用できます。
Sub Main () Debug . Print "Hello World!" MsgBox "引数がある場合は: " & Command $ End Sub
ゾジョ
Xojoには2 つの異なるプロジェクト タイプがあり、それぞれメイン エントリ ポイントが異なります。デスクトップ (GUI) アプリケーションは、プロジェクトのオブジェクトのイベントで開始されます。コンソール アプリケーションは、プロジェクトのオブジェクトのイベントApp.OpenでApplication開始されます。どちらの場合も、メイン関数は自動的に生成され、プロジェクトから削除することはできません。
App.RunConsoleApplication
参照
参考文献
- ^ 「コンピューティングにおけるエントリポイントとは何か?(画像付き)」wiseGEEK . 2020年8月5日時点のオリジナルよりアーカイブ。2020年1月22日閲覧。
- ^ Decker, Karsten M.; Rehmann, René M. (1994). 超並列分散システム向けプログラミング環境: Ifip Wg 10.3 ワーキング カンファレンス、1994 年 4 月 25 ~ 29 日。Springer Science & Business Media。ISBN 978-3-7643-5090-1。
- ^ 「C# の Main メソッド」。GeeksforGeeks。2018年 11 月 30 日。2020 年 7 月 31 日時点のオリジナルよりアーカイブ。2020年 1 月 22 日閲覧。
- ^ Wagner, Bill (2017-08-01). 「Main() / エントリ ポイント (C# プログラミング ガイド) - Microsoft Developer Network」. docs.microsoft.com . 2020-11-11 時点のオリジナルからアーカイブ。2018-12-03に取得。
- ^ 「main() 関数」。ibm.com。IBM。2017年9月10日時点のオリジナルよりアーカイブ。2014年5月8日閲覧。
- ^ 「Main() とコマンド ライン引数 (C# プログラミング ガイド)」。Msdn.microsoft.com。2014 年 6 月 9 日時点のオリジナルからアーカイブ。2014年 5 月 8 日に取得。
- ^ 「アプリケーションの基礎」。Android開発。linuxtopia.org。2013 年 12 月 31 日時点のオリジナルよりアーカイブ。2014 年 2 月 19 日閲覧。
- ^ argv: この変数名のベクトル項は、従来の意味で文字列を参照するために使用されます。
- ^ 「main のパラメータ型と名前」。2012 年 11 月 10 日時点のオリジナルよりアーカイブ。2016 年 7 月 28 日閲覧。
- ^ セクション 3.6.1.2、標準 C++ 2011 版。
- ^ 「char *apple 引数ベクトル」。2015年12月22日時点のオリジナルよりアーカイブ。2014年5月12日閲覧。
- ^ 「.NET のコンソール アプリケーション、または新米に古い芸を教える」。Msdn.microsoft.com。2003 年 6 月 12 日。2008 年 2 月 4 日時点のオリジナルからアーカイブ。2013年 8 月 19 日に取得。
- ^ 「C# プログラミング言語の設計に関する公式リポジトリ: Dotnet/Csharplang」。GitHub。2019年8 月 26 日。
- ^ XL FORTRAN for AIX . 言語リファレンス。第 3 版、1994 年。IBM
- ^ 「Haskell 98 レポート: モジュール」。Haskell.org。2013 年 8 月 19 日時点のオリジナルよりアーカイブ。2013年 8 月 19 日閲覧。
- ^ Haskell に関する誤解: 慣用的なコード、純粋性、遅延性、IO 2010-07-27 にWayback Machineにアーカイブ— Haskell のモナド IO について>
- ^ 「Java 言語環境」。Oracle 。2019年 4 月 20 日にオリジナルからアーカイブ。2020年 3 月 14 日に取得。HelloWorld
クラス内で、main() という単一のメソッドを宣言します。このメソッドには、標準出力に文字列「Hello world!」を表示するための単一のメソッド呼び出しが含まれています。「Hello world!」を出力するステートメントは、out オブジェクトの println メソッドを呼び出すことによってこれを実行します。out オブジェクトは、ファイルに対して出力操作を実行する System クラスのクラス変数です。
- ^ Schildt, Herbert (2019). Java: 初心者向けガイド. ニューヨーク: McGraw-Hill Education. p. 46. ISBN 978-1-260-44022-5. OCLC 1061561931.
//JAVA プログラムは main() の呼び出しで始まります。
- ^ 「Hello, World! - 無料のインタラクティブ Java チュートリアル」。Learn Java 。2020 年 3 月 14 日閲覧。Java
では、実際に実行できるコード行はすべてクラス内にある必要があります。「public class Main {}」は Main という名前のクラスを宣言します。このクラスはパブリックであり、他のどのクラスからもアクセスできます。
- ^ 「Hello, World! - 無料のインタラクティブ Java チュートリアル」。Learn Java 。2020 年 3 月 14 日閲覧。
「public static void main(String[] args) {}」は、Java プログラムのエントリ ポイントです。プログラムを実行するには、メイン メソッドにこのシグネチャが正確に含まれていなければなりません。
- ^ Guido van Rossum (2003年5月15日). 「Python main() 関数」。2015年7月11日時点のオリジナルよりアーカイブ。 2015年6月29日閲覧。コメント
- ^ Code Like a Pythonista: Idiomatic Python Archived 2014-05-27 at the Wayback Machine —モジュールとして使用されるPythonスクリプトについて
- ^ Ned Batchelder (2003年6月6日). 「Python main() 関数」。2015年9月20日時点のオリジナルよりアーカイブ。2015年6月29日閲覧。
- ^ プログラミング Ruby: 実用的なプログラマーのためのガイド、Ruby とその世界 2013-08-31 にWayback Machineでアーカイブ— Ruby について
ARGV - ^ “Releases.md”. GitHub Rust. 2015年5月15日時点のオリジナルよりアーカイブ。2019年2月15日閲覧。
- ^ Swift Playgrounds (Wayback Machineに 2022-07-08 アーカイブ済み) と混同しないでください。Swiftプログラミング言語を学習するための Apple 開発の iPad アプリです。
- ^ “UIApplicationMain(_:_:_:_:) — UIKit”. Apple Developer Documentation . 2019-01-12 のオリジナルよりアーカイブ。2019-01-12に取得。
- ^ 「UIApplication — UIKit」。Apple Developer Documentation。2019年1月13日時点のオリジナルよりアーカイブ。2019年1月12日閲覧。
外部リンク
- libc のない世界からこんにちは! (パート 1) 2010年 3 月 16日、Wayback Machineで 2016 年 11 月 17 日にアーカイブされました
- Javaでのメインメソッドの動作
