@cImportによるCヘッダーのインポート
ZigからCの宣言を使います
「@cImportによるCヘッダーのインポート」はCoddyKit上の無料Zig Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはZig Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Zig Academyコースには全4レッスンが含まれています。
ZigからCを呼び出す
Zigでは、別のバインディング層を用意せずにCライブラリを直接利用できます。その橋渡しは組み込み機能の@cImportから始まります。
@cImportの動作
@cImportは、指定した小さなCファイルをZigのCコンパイラーで処理し、見つかったすべての宣言を通常のZig名前空間として公開します。
ヘッダーをインクルードする
呼び出しの中で@cIncludeを使ってヘッダーを列挙します。それぞれが、Cの#include行と同じようにCヘッダーを指定します。
const c = @cImport({
@cInclude("stdio.h");
});Cの名前空間
結果は通常のZigのconstです。他のZigのstruct名前空間と同じように、ドット記法でCの名前にアクセスできます。
c.printf("hi\n");トップレベルで呼び出す
モジュール全体で使えるように、@cImportはファイルスコープに置きます。これは実行時ではなく、コンパイル時に一度だけ評価されます。
複数のヘッダー
1つの@cImportで複数のヘッダーを取り込めます。@cIncludeの行を追加すると、すべてが1つの統合された名前空間を共有します。
const c = @cImport({
@cInclude("stdio.h");
@cInclude("stdlib.h");
});先にマクロを定義する
インクルードの前に@cDefineを使うと、Cコンパイラーに-Dフラグを渡す場合と同じようにCマクロを設定できます。
const c = @cImport({
@cDefine("_GNU_SOURCE", "");
@cInclude("stdio.h");
});必要に応じて定義を解除する
対応する@cUndefを使うと、ヘッダーが解析される前にマクロを削除できます。既定値が邪魔になる場合に便利です。
コンパイル時に実行される
@cImportの内部で行われる処理はすべてコンパイル時に実行されます。ZigがCを解析して変換し、そのまま使えるZigの宣言を提供します。
定数も取り込まれる
単純な値に展開されるCマクロは、Zigで使える定数になります。そのため、EXIT_SUCCESSのようなものも名前空間内ですぐに利用できます。
return c.EXIT_SUCCESS;1つの橋渡しで本物のCを使う
1つの@cImportで、Cライブラリ全体の関数、型、定数を利用でき、Zigらしいコードからすべて呼び出せます。
クイックチェック
Cの宣言をZigに取り込む組み込み機能を思い出してください。
まとめ
@cImportと@cIncludeを使うと、コンパイル時にCヘッダーがZigの名前空間へ変換され、Cの関数や定数を直接使えることを学びました。🎯
AI チューターと学ぶ Zig — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「@cImportによるCヘッダーのインポート」レッスンは無料ですか?
はい。「@cImportによるCヘッダーのインポート」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Zig Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Zig Academyコースには全4レッスンが含まれています。
「@cImportによるCヘッダーのインポート」で何を学びますか?
ZigからCの宣言を使います ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Zig Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのZig Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「@cImportによるCヘッダーのインポート」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このZig Academyレッスンでコードを書いて実行できますか?
はい。すべてのZig Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- @cImportによるCヘッダーのインポート
- C関数の呼び出しとリンク
- Cのポインター、文字列、型
- zig translate-cでCをZigとして読む