建议采用以下目录结构和编码实践来组织您的 AI 引擎工程,以便明确其用途且便于复用。
- 所有自适应数据流 (ADF) graph 类定义(即,衍生自 graph 类
adf::graph
的所有 ADF graph)都必须位于头文件中。在同一个头文件中可包含多个 ADF graph 定义。该类头文件应包含在main
应用文件中,在此文件中,实际顶层 graph 在文件作用域内声明(请参阅 创建数据流 graph(包含内核))。 - 所包含的头文件的顺序应不存在任何依赖关系。所有头文件都必须为自包含文件,并且包含其所需的所有其它头文件。
- 在 graph 头文件中不应包含任何文件作用域内的变量或数据结构定义。任何定义(包括
static
)都必须在单独的源文件内声明,可在引用这些源文件的内核的header
属性中识别这些源文件(请参阅 查找表)。 - 无需在
extern "C" {...}
下声明这些内核。但在运行全程序仿真的应用内可使用这些声明,并且这些声明必须遵循下列条件:- 如果以
extern "C"
卷绕内核函数声明,那么定义必须已知此声明。方法是将头文件包含在定义文件内或者以extern "C"
卷绕此定义。 - 必须以
#ifdef __cplusplus
来卷绕extern "C"
。这与在 stdio.h 内使用extern "C"
的方式同义。
- 如果以