- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 GCC和Clang的两个值得了解的编译器开关
GCC和Clang的两个值得了解的编译器开关,在系统编程中非常有用。-fno-strict-aliasing禁止依赖于严格别名规则的优化。严格别名规则指的是两个不相关类型的指针解引用不会相互影响,一个例外是(signed/unsigned) char指针解引用会与任何其它指针解引用互相影响。遵守严格别名规则的话,只能使用memcpy或char*互拷进行数据重解析,有些代码实现起来性能肯...
2023-08-08 19:37:38 1158
原创 Debian如何让multilib和交叉编译工具链共存
Debian一个槽点是gcc/g++/gfortran-multilib和交叉编译工具链如gcc/g++/gfortran-riscv64-linux-gnu会互相卸载,解决办法如下:
2023-08-04 11:48:35 929 1
原创 vmware安装linux共享文件夹重启失效的解决办法
vmware安装linux共享文件夹重启失效的原因是open-vm-tools[-desktop]只有设置变化时自动挂载共享文件夹的功能,没有系统启动时自动挂载共享文件夹的功能
2023-05-02 12:41:03 1780 1
原创 虚拟机压缩虚拟磁盘的方法
虚拟机删除文件后,虚拟磁盘占用空间并不会缩小,甚至在外面手动压缩都无法缩小,这是因为虚拟机并不能感知到客户系统删除了文件。命令会首先对未使用空间填0, 然后会弹出vmware的压缩虚拟磁盘进度条,进度条走完以后就压缩成功了。实际上虚拟机虚拟磁盘压缩需要两步,需要首先在内部填0,然后在外面压缩才能缩小占用空间。下面是vmware和virtualbox下的虚拟机压缩虚拟磁盘的方法。
2022-11-18 16:04:01 4580 1
原创 void main()写法的来源
void main()的写法来源于main()的写法。由于C语言被设计为汇编语言的简单抽象,而int返回值一般是保存在算术寄存器如AX中传递,设置和接收返回值只需一条MOV指令,因此早期C语言没有void,函数不写返回类型就是int类型,不写return就是没有返回值,函数调用语法被设计为返回值可以被轻松忽略。所以早期main函数的写法是main(),但是这样的写法,返回值到底有没有这个问题,容易搞不清楚,实际上K&R的《C Programming Language》(1978/1988)就
2020-10-10 14:29:00 1217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人