姜茶.Blog

这是一个正在成长的程序员

操作系统

C 程序的存储空间分布

C语言程序的存储空间布局 C程序一般有以下几个部分组成 正文段 初始化数据段 未初始化数据段 栈 堆 正文段:存储CPU执行的机器指令部分,正文段常常是只读的,防止其他程序意外修改指令;正文段可以共享,同一个程序运行多个时,系统内只有一个正文段的副本。 初始化数据段:通常称为数据段,包含了明确需要赋初值的变量。这个分区一般存储所有赋初值了的全局变量和静...

操作系统

在 main() 函数运行前发生了什么

在 main函数之前发生了什么 对于编程人员来讲,main 函数是程序的入口,但事实上 main 函数之前也发生了很多操作。在 main 函数开始前,分成两部分 “系统调用部分” 和 “C++ 程序自身的部分”。 我们首先假设程序的 main 函数原型是int main(int argc, char *argv[]);,其中,argc 指命令行参数的数目, argv 是指向参数的各个指针...

Operating System

C语言程序栈

操作系统 编译 UNIX上编译一个c语言程序使用如下命令生成可执行文件gcc -o hello hello.c 编译系统分为预处理器(preprocessor)、编译器(compiler)、汇编器(assembler)和链接器(linker)四个部分组成。 预处理阶段:预处理器(cpp)将根据以字符 ‘#’ 开始的命令修改原始的C语言程序,得到另一个C语言程序,通常以.i作为文件...

Hello CMake

入门 CMake

GCC 编译过程 UNIX上编译一个c语言程序使用如下命令生成可执行文件gcc -o hello hello.c 编译系统分为预处理器(preprocessor)、编译器(compiler)、汇编器(assembler)和链接器(linker)四个部分组成。 预处理阶段:预处理器(cpp)将根据以字符 ‘#’ 开始的命令修改原始的C语言程序,得到另一个C语言程序,通常以.i作为文件...

Share mouse and keyboard

共享鼠标和键盘

键鼠共享 Synergy 是一款在不同操作系统间共享键鼠的软件,支持 Windows, Mac OS X, LINUX。 非常适合程序猿在桌上有多台电脑时使用,配置参考 破解 有个老外根据源码,写了个C++ 程序用来激活程序,该程序有个在线执行的地址C++ Shell,可以在线执行,获得序列码。 也可以直接复制下方的代码,编译成C++ 程序,经验证,此破解程序在 1.10版本依旧有效,尚...

Ice Breaker

敲冰块

敲冰块 利用随机数来实现一个掷骰子的功能 点击跳转

OpenMesh

半边数据结构汇总

半边数据结构 半边数据结构具有如下特点: 每个顶点对应一个出边。例如,一个半边从顶点1出发; 每个面对应一个半边为它的边界,例如面2; 每个半边指向的对象如下: 指向下一个顶点3; 指向一个面4; 指向下一边半边5; 指向反向的半边6; 指向上一个半边7(可选) OpenMesh ...

CGAL

三维周期网格

Introduction 一个周期的网格生成过程由如下两个函数完成: template <class C3T3, class PeriodicMeshDomain, class MeshCriteria> C3T3 make_periodic_3_mesh_3(const PeriodicMeshDomain& domain, ...

Modern C++

现代C++ C++11 C++14

Introduction 最近听闻了一个段子 同样是C++工程师,有的人写的是 C with object,有的人写的是 C++ 98,fashion一点儿的写 C++ 11,而有些弱鸡写的是 谭++。 (日常黑谭浩强,虽然我不太了解有多少黑点。。。 左值右值 C++( 包括 C) 中所有的表达式和变量要么是左值,要么是右值。通俗的左值的定义就是非临时对象,那些可以在多条语...

瞎搞搞-数字水印(待填坑)

在自己的摄影作品上添加数字水印

前言 虽然我还是个技术糟糕的咸鱼摄影,但也该考虑自己牛逼了以后的事,不如趁早做个个人专属水印(臭不要脸)。 所以这里写个博客给自己立个FLAG,鼓励自己早日把这个FLAG拆掉! 目标 在设想如何实现这个专属水印的时候,我想到了前些时候火热的数字水印,不如借这个机会花几天时间自己实现一个属于自己的添加水印工具。 初期考虑功能: 直接水印:(设置一个规则json文件,可以...