📄 data_structure.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 + -