為 C/C++ 物件命名

包含路徑

標題分為四種類別:系統、全域、程式庫及 。

系統標頭

#include <zircon/foo/bar.h>
定義

這些標頭會定義核心與使用者空間之間的介面 (已知 做為 vDSO 介面這些標頭定義系統呼叫,包括相關類型 和結構這些標頭也會定義一些基本的 C 和 C++ 機器, 例如以明確定義的序列當機。

附註
  • 系統標頭可安裝在 zircon/ 之下,而非 lib/zircon/
  • 系統呼叫包裝函式 (例如 zx) 不算是系統標頭。他們 是需要系統標頭的程式庫標頭 (請見下文)。
  • 標準系統標頭 (例如來自 C 和 C++ 標準程式庫) 會有 標準路徑
範例
  • #include <zircon/process.h>
  • #include <zircon/syscalls/hypervisor.h>
  • #include <stdint.h>
  • #include <algorithm>

全域標頭

#include <fuchsia/foo/bar.h>
定義

這些標頭定義使用者空間元件之間的全系統合約。這些 標頭是根據這些合約的 FIDL 定義產生。

附註
  • 手寫程式碼應以程式庫標頭提供,而非全域 標題。
範例
  • #include <fuchsia/sysmem/cpp/fidl.h>
  • #include <fidl/fuchsia.sysmem/cpp/wire.h>

程式庫標頭

#include <lib/foo/bar.h>
定義

程式庫標頭是應用程式使用的手寫程式碼, 他們定義的介面是該應用程式的本機介面。有些程式庫 桃紅色特定,並在一些較低階的周圍提供人體工學包裝函式 系統設施有些程式庫可能不會直接與 Fuchsia 連結,

附註
  • 所有程式庫標頭都位於 lib/ 目錄中,可避免與 應用程式所使用的其他標頭。
  • 頁首不得直接放在 lib/ 底下。子目錄 (lib/foo/) 的必要項目。
範例
  • #include <lib/fit/function.h>
  • #include <lib/sys/cpp/component_context.h>
  • #include <lib/zx/event.h>

導入作業標題

#include "src/foo/bar.h"
定義

導入標題屬於 Fuchsia 平台來源樹狀結構的內部。他們 從未包含在 SDK 中,並會由 來源樹狀結構

產生實作標頭的工具會將這些標頭放在平行目錄中 建構目錄,且使用者將這些內容納入 。

附註
  • 包含的實作標頭會使用 " (而非 <) 表示 路徑與來源樹狀結構的根目錄有關
範例
  • #include "src/ui/scenic/bin/app.h"
  • #include "src/lib/fxl/observer_list.h"

如果 fshost_config.h 由目標產生 //src/storage/fshost/BUILD.gn

  • #include "src/storage/fshost/fshost_config.h