sketch布尔运算和路径剪切

sketch中提供了布尔运算的功能,就是将几个简单图形组合成复杂图形,路径操作就是对图形上的锚点进行一些操作,一开始学习使用过程中使用这两个功能有遇到几个小问题。这里做一下记录总结。

bazel实践

之前总结了c++开发的一些基础,现在总结一下使用bazel做c++项目构建工具实践中的一些注意点。

helloworld

官方提供了几个helloworld的构建例子,这里简单过一下项目结构,
git clone https://github.com/bazelbuild/examples,写好BUILD文件后,执行bazel对应的命令即可完成构建

c,c++标准

c/c++标准

c标准

时间 名称 标准制定组织 事件
1978 K&R标准 K&R 《The C Programming Language》author: K&R
1989 ANSI C / C89 ANSI ANSI通过C语言标准
1990 C90 ISO & IEC ISO&IEC将C89标准定为C语言国际标准
1994 C94 ISO & IEC ISO&IEC发布C89标准修订版,即C94
1995 C95 ISO & IEC ISO&IEC发布C94标准修订版,即C95
1999 C99 ISO & IEC ISO&IEC发布C语言新标准,即C99。这是C语言第二个标准
2011 C11 ISO & IEC ISO&IEC发布C语言新标准,即C11。这是C语言第三个标准

js对象拷贝

问题出现

1.因为后端传过来的数据的形式和展示到页面上所需要的形式不太一致,所以需要将数据重新组装一下。
2.首先想的是重新自己定义一个对象,然后把数据遍历一边,把需要的数据拿出来,放到自己定义对象里面,这是很常规的操作,但是最后得到的却不是我预想的结果

具体代码

    // 原始数据 origin
    // 定义两个对象存储最后组装的结果
    let result = []
    for(let i = 0; i < origin.length ;i++){
        let attr1 = orogin[i].attr1
        for(let j = 0; j < attr1.length; j++){
            let attr2 = attr1[j].attr2
            let item = {}
            let item = {'a1': attr2['a1'], 'a2': attr2['a2']...}
            result.push[item]
        }
    }

c++基础:编译和构建工具

背景

最近又开始学c++了,因为项目中有用到,要开发项目,首先要搭环境,要先熟悉一下编译过程和构建工具

编译工具gcc和g++

代码编译过程


1.预处理,引入#include头文件以及宏定义展开,得到文本文件
cpp hello.c > hello.i
2.编译,将预处理后的文件转换成汇编代码,得到程序的汇编代码
gcc -S hello.i
3.汇编,将上一步汇编语言代码转换成机器码,得到二进制目标文件
as -o hello.o hello.s
4.链接,将多个目标文件以及所需的库文件链接成最终的可执行文件
ld -o hello.exe hello.0 —libraries…