.S
Linux カーネル、FreeBSD カーネル、またはその他のプロジェクトなど、さまざまなプロジェクトでファイルを見てきました。これらのファイルは何をするもので、.c
代わりにファイルを使用できないのはなぜですか?
8 に答える
.S
ファイルは、アセンブリで記述されたソース コード ファイルです。アセンブリは、プログラミングの非常に低レベルな形式です。ファイルには、プロセッサへのアセンブリ命令が順番に含まれており、通常は選択したアーキテクチャに基づいてコンパイルされます。このようなファイルの例は、x86、sparc、ARM などの特定のアーキテクチャの Linux カーネルでよく見られます。
アセンブリ言語の詳細については、次を参照してください。
- X86 アセンブリ/GAS 構文
- x86命令リスト
- TLDP Linux アセンブリ ハウツー
- Linux カーネルでの例: arch/x86/net/bpf_jit.S
.S
拡張子はアセンブリ言語ファイルを示します。
代わりに .C ファイルを使用できないのはなぜですか?
生のソース コードは、人間が入力したものであろうと、コンパイラによって生成されたものであろうと、C ではなくアセンブリであるためです。
これらはアセンブラー コードファイルです。
アセンブリ言語は、コンピュータ、マイクロプロセッサ、マイクロコントローラ、およびその他のプログラマブル デバイス用の低レベル プログラミング言語であり、各ステートメントが 1 つの機械語命令に対応しています。アセンブリ言語は、より移植性が高い可能性があるほとんどの高レベル プログラミング言語とは対照的に、特定のコンピューター アーキテクチャに固有です。
したがって、これらのファイルは C コード ファイルと同じではありません。
C ファイルはアセンブリ命令でインライン化できることに注意してください。
.S ファイルはアセンブリ言語ファイルです。それらはマシンコードの形式です。低レベルのプログラミングです。マシンに依存するコードはすべてアセンブリ言語で記述されています。アセンブリ言語はプロセッサごとに異なります。