AMXXPawn编译器指令#include #tryinclude

#include引用文件指令和#tryinclude尝试引用文件指令使用方法:

#include inc文件名 #include "inc文件名" #include <inc文件名>

#include#tryinclude指令的书写格式是相同的,可以将inc文件的所有内容复制到该指令所在位置.

若inc文件不存在,#include会报错,而#tryinclude不会报错.

首先需要知道,amxxpc.exe编译器是可以多次使用启动参数-i指定inc文件目录的.

像这样:-i"C:\AMX Mod X\include"

若inc文件名没有 < > 尖括号,编译器会按照"源码文件所在目录" -> "-i参数所指目录" -> "编译器目录\include"顺序寻找inc文件.

若inc文件名有 < > 尖括号,编译器会按照"-i参数所指目录" -> "编译器目录\include"顺序寻找inc文件.

若并未设定编译器启动参数.会直接从"编译器目录\include"寻找inc文件.

inc文件名可以省略.inc .p .pawn三种拓展名,编译器会自动尝试这三种可能.当然也可以主动指定其他拓展名.因为编译器会先拿用户定义的名称尝试寻找.

inc文件名中允许使用任意数量的 / 正斜杠或 \ 反斜杠字符,表示指向更深层的文件地址.

比如#include <include2\\\\\\\\AMXX182\amxmodx.sma>实际指向:编译器目录\include\include2\AMXX182\amxmodx.sma

正斜杠和反斜杠的效果略有不同.

若文件a.sma使用"z\b.inc",则b.inc要引用z/x/c.inc必须写"x/c.inc""x\c.inc".

若文件a.sma使用"z/b.inc",则b.inc要引用z/x/c.inc必须写"z/x/c.inc""z\x\c.inc".

通常应该尽可能使用 < > 尖括号包裹文件名.

一些邪门写法(续行符会被换成1空格拼接到下一行首个非空白字符,然后注释会被替换成同等字节数的空格):

#include <my/**/plugin> // 引用my plugin.inc文件 #include <my/*\ */plugin> // 引用my plugin.inc文件 #include/*\ */<myplugin> // 引用myplugin.inc文件