Avery的城堡C与C++开源项目学习 返回首页

C与C++开源项目学习

发表于2022-05-19|更新于2022-05-19|CPlusPlus
|浏览量:

来自www.codesheep.cn 作者推荐

CJson

实现在一个C语言的JSON解析器
https://sourceforge.net/projects/cjson

TinyHttpd

实现一个C语言简单的HTTP服务器
https://github.com/ezlippi/tinyhttpd

MyTinySTL

实现了一个STL库
https://github.com/alinshans/mytinystl

OATPP

纯C++的高性能无依赖的WEB框架
https://github.com/oatpp/oatpp

Redis

https://redis.io

nginx

超轻量级静态服务器

文章作者: 霍家鹏
文章链接: http://www.hjp.wiki/2022/05/19/CProjectStudy/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Avery的城堡!
C++
赞助
  • wechat
    wechat
  • alipay
    alipay
cover of previous post
上一篇
CSHARP的编译器
C#、.NET Framework、CLR的关系 .NET框架是一个独立发布的软件包,其包含了CLR、类库以及相关的语言编辑器等工具。C#代码经过编译之后在CLR环境中运行。 C#是一种面向对象编程语言,是为开发.NET框架上的程序而设计的。 (1)C#是由C和C++衍生出来的,所以其可调用由 C/C++ 编写的本机原生函数,同时不损失C/C++原有的强大的功能。 (2)C#所开发的程序源代码并不是编译成能够直接在操作系统上执行的二进制本地代码。它是被编译成为中间代码,然后通过.NET框架的虚拟机(即CLR)来执行。所以如果计算机上没有安装.Net框架,那么程序将不能够被执行。在执行的过程中,.Net框架会将中间代码翻译成为二进制机器码,从而使它得到正确的运行。最终翻译的二进制代码将被存储在一个缓冲区中。所以一旦程序使用了相同的代码,那么将会调用缓冲区中的版本。这样如果一个.Net程序第二次被运行,那么这种翻译不需要进行第二次,速度会明显加快。 .NET框架有三部分组成 (1)CLR (2)编程工具:涵盖了编码和调试需要的一切:包含:VisualStudio集成开...
cover of next post
下一篇
计算机图形学编程笔记2
一、光线追踪 原理 起因: 光珊化不能很好的处理全局的效果, 如软阴影,较光滑的金属表面(Glossy)反射问题,间接光照(光线多次弹射才进入人眼) 光追的特点:非常慢 光线的假定 光沿直线传播(并不正确) 光与光不会碰撞(并不正确) 光线一定从光源出发最后到达眼睛(reciprocity光线可逆性性质,实际物理上不可逆性) 光追:实则是从相机出发经过不断反射折射到光源,由相机出发,此光线沿着直线,遇到阻挡的物体时点(只记录最近的交点),再判定此点到光线是否是在阴影,不在阴影,这时再进行shading。 以上其实只考虑了光线弹射一次的情况,那考虑多次弹射时,这时引入一种光追算法: Whitted-Style Ray Tracing Recursive Whitted-Style Ray Tracing (1979年) 对于每个光线产生的交点,都被计算回到最终的显示。 如中间产生的折射也算在内。 Shadow ray: 表示最终与光线连接需要判断是否要显示的光线 求光线射出去的交点: Ray Equation:对于光线上的点,都可以表示为以下等式: 光线与求交点 对于...
相关推荐
2023-02-20
C++ 11新特性
1. 支持Long long类型 一般来说编译器支持int 为4个字节,double占用8个字节(2个字), 在C++11中加入了更高精度的long long类型,long double类型,以3、4个字表示(16个字节) 2. 列表初始化或赋值 说是列表初始化,其实本质上就是一种由花括号(类似于列表)的方式来初始变量。 int test_a = {1};test_a = {2}; //赋值int test_b{2};vector<int> test_c = {1,3,4} //同样适用于vector//int test_d = {1.2} //错误,类型转换无法发生在列表初始化//test_d = {1.3} //错误,类型转换无法发生在列表赋值map<string, string> authors = {{"1", "a"},{"2",...
2022-05-19
Effective C++学习记录
条款1: 习惯C++ C++ 领域的四大块: 1.C: 基础,语句,数组,指针等等 2.Object-Oriented C: 继承,多态,封装 3.Template C++: 泛型编程 STL: 一种特殊的Template程序库,容器,迭代器,算法,对象等等规约 条款2:尽量以const, enum, inline替换 #define 宁用编译器替换预处理器。 1.使用声明式与定义式:如 //头文件class GamePlayer{private: static const int NumTurns = 5;//声明时候指定数值}//实现文件const int GamePlayer::NumTurns;//无需再次定义了 2.使用enum当int数组用 class GamePlayer{private: enum{NumTurns =5}; int scores[NumTurns];} 3.对于函数宏定义,使用Inline替代 //替换以下define语句。//#define CALL_WITH...
2022-05-19
C++ 复习1
一、 关于无符号与有符号数 无符号不能为负数 循环如果使用无符号计数,以>=为条件将导致死循环 二、 C++ 11的初始化方法 int a{0}; 三、 extern的使用 对于希望分离成多个文件独立编译的变量,使用extern公开出去 声明一个变量并extern出去,但注意不要声明+定义一起,否则失去了extern作用了 extern变更的声明可以在多个文件,但定义只能在一个文件 四、复合类型:引用与指针 引用类型一旦初始化就与初始对象绑定在一起,不可以更换绑定。且必须在定义时赋值。 引用类型不可以与值绑定 指针可以不在声明时初始化,指针是一个对象 指针赋值之间类型必须相同 C++ 11的标准提供了nullptr为指针初始化为空。 引用cstdlib标准库中,还可以用NULL为指针初始化 任何非0的指针都为true. void*指针,可用于存放任意对象的地址,但不能直接操作指针所指的对象,可理解为操作内存空间 五、理解复合类型 对于一个变量,要理解其类型,最简单的办法从右向左阅读变量的定义,离变量名最近的对变量有最直接的影响。 int ...
cover
2023-02-01
C++ 复习2
一、概述 C++ 起源于1983年,1.0正式版于1998年发布又叫C++98。 2.0版本为C++11(即2011年推出的大版本)。 C++ 简单来说由 语言+标准库组成 C语言的缺点:数据-> 函数的处理方式,导致数据一定是全局才能给各个函数处理。这时C++的面向对象思想就解决了这一问题 c++ 用 class 将member data和member function包在一起来创建object 延展文件名(extension file name)不一定是.h或.cpp,可能是.hpp甚至没有。 二、文件头与类 2.1 Header(头文件)中的防卫式声明(guard) 为了防止多次include复制执行,保证只被一次include,使用防卫式声明。 #ifndef __COMPLEX__#define __COMPLEX__内容#endif 建议所有头文件都有这个声明 2.2 头文件内容布局 前置声明 class complex; 类声明 class complex{....} +类定义 complex::function ... 2.3 ...
2023-02-25
C++ 复习3
函数模板的隐式或显式转换 对于类型不明确的情况,需要使用显式转换告诉编译器类型,隐式转换存在于编译器明确知道是什么类型的情况 。 template <typename T>const T& max(const T& a, const T& b){ return a > b?a:b;}void Test1(){ cout << max(1,2);//隐式 cout << max<double>(1,19.2);//显式} 无法为函数模板指定缺省的模板实参,但类模板可以 模板参数: 这里的typename T就是模板参数,而a,b则是调用参数。通过隐式转换,可以得到一些更简化的用法: template <typename RT, typename T1, typename T2>RT max(const T1& a, const T2& b){cout << "run two" ;r...
avatar
霍家鹏
Keep going! Keep study!
文章
99
标签
20
分类
17
Follow Me
公告
Welcome to my blog
目录
  1. 1. CJson
  2. 2. TinyHttpd
  3. 3. MyTinySTL
  4. 4. OATPP
  5. 5. Redis
  6. 6. nginx
最新文章
C++ 复习32023-02-25
C++ 11新特性2023-02-20
C++ 复习2
C++ 复习22023-02-01
GAMES104-NOTE4
GAMES104-NOTE42023-02-01
GAMES104-NOTE3
GAMES104-NOTE32022-12-06
© 2025 - 2026 By 霍家鹏框架 Hexo 6.2.0|主题 Butterfly 5.5.3