C ファイル形式とは?
.c は C プログラミング言語のソースコードファイルです。C は汎用的な手続き型言語であり、ソフトウェアアプリケーション、オペレーティングシステム、組み込みシステムの開発に広く使用されているミドルレベルのプログラミング言語と見なされています。1972年に Bell Labs の Dennis Ritchie によって作成され、ANSI および ISO によって数回の改訂を経て標準化されています。現在の標準は C23 です。
.c 拡張子を持つファイルはテキストエディタでアクセス可能であり、ユーザーは単純なテキストエディタソフトウェアやフル機能の IDE を通じて、これらのファイル内のコードを読み書きできます。.c ファイルには、開発者によって記述された実際のコードのほか、プリプロセッサ命令(#include や #define など)やコメントなどの情報が含まれています。実行する前に、.c ファイルは gcc や clang などの C コンパイラによってオブジェクトファイルにコンパイルされ、その後エグゼクティブ(実行ファイル)にリンクされる必要があります。
.c ファイルは C 言語専用であり、.cpp や .cc などの拡張子を使用する C++ ソースファイルと混同しないでください。複数の .c ファイル間で共有される宣言は、.h 拡張子を持つ ヘッダーファイル に配置されます。
セキュリティと安全性
リスク: LOW.c ファイルはプレーンテキストであり、それ自体で実行されることはないため、エディタで開くことは安全です。リスクが生じるのは、不明な C コードを「コンパイルして実行」する場合のみです。信頼できないソースからのコードは、ビルドされるとプログラムができること(ファイルの削除、ネットワークアクセス、マルウェアのインストールなど)を何でも実行できてしまいます。また、C 言語の低レベルな性質上、悪意のあるコードやバグを隠すことが容易です。コンパイル前にコードを確認し、信頼できないコードはサンドボックスや仮想マシンでビルドし、信頼できないコンパイル済みバイナリは決して実行しないでください。ファイル拡張子自体に脆弱性はありません。危険なのはコンパイル後のコードの動作です。
形式の詳細
概要- C++ ソースファイル (レガシー) - 歴史的に、.c(および大文字小文字を区別する Unix では大文字の .C)は C++ ソースにも使用されていました。このデータベースの «C/C++» という名称はその意味を含んでいます。現代の C++ では .cpp/.cc/.cxx を使用します。
- DOS/Windows ボリュームレターまたは汎用データ - 稀に、ソースコード以外のアーティファクト(例:迷い込んだ 1 文字の名前など)として «c» が現れることがありますが、圧倒的にソースコードとしての意味が主流です。
C ファイルを開くプログラム
技術的詳細
詳細仕様| MIME タイプ | text/x-csrc |
| 文字エンコーディング | プレーン ASCII または UTF-8。バイナリのマジックバイト署名はなく、バイトではなく内容によって識別されます |
| 言語標準 | ANSI C89 として標準化され、その後 C99、C11、C17 と続き、現在の標準は C23 (ISO/IEC 9899:2024) です |
| プログラミングパラダイム | 手続き型および命令型。クラスやオブジェクトをネイティブにはサポートしていません |
| メモリ管理 | 手動 - 開発者が malloc() と free() を使用してヒープメモリの割り当てと解放を行います |
| プリプロセス段階 | ソースはコンパイル前にプリプロセッサによって処理され、#include、#define、および条件付きコンパイル命令が解決されます |
| コンパイル出力 | オブジェクトファイル (.o / .obj) にコンパイルされ、その後実行ファイルまたは静的/共有ライブラリにリンクされます |
| ヘッダーのペアリング | 実装ロジックは .c ファイルに記述され、翻訳単位間で共有される宣言はペアとなる .h ヘッダーファイルに記述されます |
| 主な用途 | OS カーネル、組み込みファームウェア、コンパイラ、データベース、およびパフォーマンスが重視されるシステムソフトウェア |
| コメント構文 | ブロックコメント /* ... */ は C89 からサポート。単一行コメント // は C99 で追加されました |
| 移植性 | ISO 準拠のコードはアーキテクチャ間で高い移植性を持ちます。プラットフォーム間の差異はプリプロセッサガードで管理されます |
| 大文字小文字の区別 | 大文字小文字を区別するファイルシステム(Linux、macOS)では、慣習的に大文字の .C は C++ ソースファイルを指し、小文字の .c と区別されます |
| コンパイラエコシステム | GCC、Clang/LLVM、MSVC、Intel oneAPI C++、TinyCC などでコンパイルされます |
| リリース日 | C language created 1972 (Bell Labs); standardized ANSI C 1989, ISO C 1990, latest C23 |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.iso.org |
C の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。C ファイルについて最初の質問をしてみましょう。