⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 data_structure.c

📁 百宝箱3.27传奇3GQ外挂.支持私服.
💻 C
字号:
// Written by BBX workgroup
// Release: 2004/5/21

// 说明:ACI 数据类型示例代码
// 主要演示整数(int),浮点数(float),字符串(string),
// 二进制字串(buffer),数组(array),映射类型(mapping) 如何使
// 用

printf("Sample of ACI data structure.\n");

int     a_int = 8888;
float   a_float = 123.456;
string  a_str = "this is a string.";
buffer  a_buf = (buffer) "123456ABCD";
array   a_arr = ({ 1, 2, "a", 3.4, "xxx" });
mapping a_map = ([ 1 : "Value of 1", 2 : "Value of 2",
                   "xxx" : "Value of xxx",
                   7.88  : "Value of 7.88", ]);

printf("a_int = %O\n",   a_int);
printf("a_float = %O\n", a_float);
printf("a_str = %O\n",   a_str);
printf("a_buf = %O\n",   a_buf);
printf("a_arr = %O\n",   a_arr);
printf("a_map = %O\n",   a_map);

// %O 表示任意类型输出,当然,通常 C 使用的 %d, %f, %s 也是
// 可以使用的

printf("Difference of %%O & %%s.\n");
printf("Output as %%O: a_str = %O\n", a_str);
printf("Output as %%S: a_str = %s\n", a_str);

// 注意:%% 表示转义,也就是直接输出 %
// 可以看到,%O 输出字符串会输出 " 以表明这个值是字符串。
// 对于二进制字串,数组,映射类型,只能用 %O 输出。

// 简单数值操作
printf("a_int + a_float = %O\n", a_int + a_float);
printf("a_float + a_int = %O\n", a_float + a_int);
printf("a_str + a_int   = %O\n", a_str + a_int);
printf("a_str + a_float = %O\n", a_str + a_float);
printf("convert a_buf to string: %s\n", (string) a_buf);

// 数组(array)
printf("\nFor array.\n");
printf("sizeof(a_arr) = %d\n", sizeof(a_arr));
printf("a_arr[0] = %O and a_arr[2] = %O\n", a_arr[0], a_arr[2]);
a_arr[0] = a_arr[2];
printf("a_arr[0] = %O and a_arr[2] = %O\n", a_arr[0], a_arr[2]);
a_arr = allocate_array(5);
printf("Allocated array, now a_arr = %O\n", a_arr);
a_arr = ({ 1, 2, "888" });
printf("Assigned array, now a_arr = %O\n", a_arr);

// 映射(mapping)
printf("\nFor mapping.\n");
printf("sizeof(a_map) = %d\n", sizeof(a_map));
printf("a_map[1] = %O and a_map[\"xxx\"] = %O\n", a_map[1], a_map["xxx"]);

// 查询映射中一个还没有定义的关键字,应该返回 UNDEFINED
printf("a_map[\"new\"] (unassigned) = %O\n", a_map["new"]);

// 给这个没有定义的关键字赋值
a_map["new"] = a_map[1];
printf("a_map[\"new\"] (assigned) = %O\n", a_map["new"]);

// 再赋值
a_map["new"] = ({ 1, 2, "x", "y" });
printf("a_map[\"new\"] (assigned) = %O\n", a_map["new"]);

// 删除这个关键字
map_delete(a_map, "new");
printf("a_map[\"new\"] (removed)  = %O\n", a_map["new"]);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -