- 博客(66)
- 资源 (7)
- 收藏
- 关注
原创 android 编译 tassl
#!/bin/bash# Cross-compile environment for Android on ARMv7## Contents licensed under the terms of the OpenSSL license# http://www.openssl.org/source/license.html# Set ANDROID_NDK_ROOT to you N...
2020-04-16 21:51:18 310
原创 通用单向链表和双向链表
单链表/***module: singly linked list*/#ifndef __SLIST_H__#define __SLIST_H__typedef struct s_entry_s{ struct s_entry_s *flink;}s_entry_t;//单链表typedef struct slist_entry_s{ s_entry_t* hea...
2020-03-21 11:18:42 887
原创 json解析库-jansson 使用
json解析C库很多,比较常用的一个就是cjson,但是cjson读取文件的时候,出错的时候,不能确定到底在哪一行,我觉得这是 jansson库一个不错的地方。
2020-02-09 11:29:27 2227
原创 简单工厂--工厂方法--抽象工厂
工厂方法————创建型设计模式今天要和大家分享的是,工厂方法。考虑这样一种场景,你创建了一个运输管理程序, 第一个版本,你的应用程序只有卡车运输。因此你的所有代码都在卡车(Truck)类中。一段时间之后,你的App很受欢迎,很多海运公司希望你的App支持海运。这是个好消息,代码怎么办呢?你的大多数代码都在Truck类中,增加Ship类,需要改动整个代码仓库,另外,再过段时间,如果你想添加另外一种运输类型到你的App中,你又得再做一次同样的改变和Ship 一样。最后你的代码将变得混乱,各种运输对象的切
2021-08-06 22:44:37 112
原创 设计模式总览
计划写个设计模式的专栏,权当个人学习的总结,加深对设计模式的理解,同时也希望,自己以后在代码设计上能信手拈来。 大家学习设计模式, 有没这样一种感觉,感觉作者讲的很明白了,但是不知道代码怎么写,或者感觉懂了,但是又觉得实际当中没那样的应用场景。 我觉得这有多方面的原因,一方面编程经验比较少,我说的这个经验少不是工作年限少,而是接触的各种业务类型少,因为你工作了很多年,但是日复一日的做同样的事情,接触面也广不了。就有一种感觉,觉得作者为了讲设计模式而去虚构一种场景。另一方面,虽然基础了
2021-08-06 18:12:25 92
原创 【C语言从入门到构建大型项目】-- 第五章:函数
【C语言从入门到构建大型项目】-- 第五章:函数本章内容:main 入口参数解析函数调用swith 的使用前面章节讲解的时候,代码都很短,都不超过一百行,一个入口函数 main 就解决了。但实际项目,小则几千行,多则几万行、十几万行。不可能在一个入口函数实现所有的功能,C语言为了解决这个问题,就有了函数的概念,我们可以定义很多函数,让不同的功能在不同的函数中进行时间,然后在 main 函数中进行调用。今天我通过一个计算两个数加减乘除结果的小程序,来说明函数的使用。小程序这样使用:.
2021-07-11 13:16:05 109
原创 C语言 hash 与 ini 文件读取的实现
//hash.h/** * **/#ifndef __DATASTRUCT_CHASH__#define __DATASTRUCT_CHASH__#include <stdint.h>#define DEFAULT_SIZE 13typedef void* (*func_clone_key)(void* key); // 用于克隆键对象typedef void (*func_destroy_key)(void* key); // 用于释放键对象typedef v
2021-07-04 12:08:36 147
原创 【C语言从入门到构建大型项目】-- 第四章:循环 do{}while(0) 妙用
有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。为了适用各种场景,C语言提供了多种控制结构。循环语句允许我们多次执行一个或多个语句。随便找一本书都可以找到关于 for ; while ; do while 的使用示例,这里我就不赘述了。我要分享的是,在实战中常用的一个技巧 do{} while(0);场景一:多逻辑结构去掉goto考虑这样一种情况,比如要实现一个目标的时候,有很多操作,每一个操作失败时,都进行退出,并释
2021-02-21 11:49:40 142
原创 【C语言从入门到构建大型项目】-- 第四章:基本逻辑结构
个人微信:jxdeng64判断判断的结果,有两种情况,真和假。在实际编码中,通过判断结果真或假来执行一定的语句。我们把非零和非空的值假定为trueif esle比如我们通过判断学生的分数是否大于60来显示是否及格。#include <stdio.h>#include <float.h>int main(){ int score = 59; if (score >= 60) { printf("及格\n"); }
2021-02-16 10:25:39 226
原创 【C语言从入门到构建大型项目】-- 第三章:基本数据类型
在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。C类型可以分类为一下类型:基本类型算术类型,包括两种类型:整数类型和浮点类型枚举类型也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。void 类型指定没有可用的值,一般用在函数参数和空指针扩展类型指针类型、数组类型、结构类型、共用体类型和函数类型具体实例:整形类型类型 存储大小 值范围char 1 字节 -128 到 127 或
2021-02-16 09:24:52 128
原创 【C语言从入门到构建大型项目】-- 第一章:Hello World 讲解
第一章:Hello World 讲解这是我们写在《环境搭建》那一章的 “hello world” 程序。#include <stdio.h> int main() { printf("Hello World.\n"); return 0; }先看看整体结构。先是一个头文件包含语句,#include <stdio.h>,为什么要包含文件,因为后面用到了printf函数,printf函数的声明在 stdio.h文件中,如果不包含的话,会警告hello
2021-02-15 17:48:42 1317 4
原创 【C语言从入门到构建大型项目】-- 第二章:gdb调试
在跟大家讲解C语言基础之前,先和大家分享下,怎么在linux下进行代码调试。为了加快后面的学习,因为很多时候,在对语法不熟悉的情况下,没有什么是比直接调试代码更好的了。但是,我不推荐,一遇到代码不符合预期运行时就进行调试,而是先在自己的脑袋里运行几遍,实在理解不了,跑不顺时,再用调试工具进行调试。该篇为调试入门篇,后续会有高级部分。照着一步步做,看完就学会了!可执行文件调试从一段简单的代码开始!#include <stdio.h>int main(){ int i = 0; i
2021-02-06 10:20:41 432 2
原创 【C语言从入门到构建大型项目】-- 第零章:Linux 环境搭建
C语言从入门到构建大型项目–Linux 环境搭建今天要和大家讲解的是,Linux 环境下C编程环境的搭建。对于源代码变成可以用的程序,只需要编译器,如果有其他库,还需要用到链接器。对于源代码的编辑,随便一个编辑器就行。编译器、连接器,一个 gcc 就搞定。当然,你也可以用 IDE(Intergated Develop Environment) 将这两者搞定。但是还是推荐使用编辑器加自编写编译文件(Makefile文件)的方式。××编辑器××Linux 下常用到的编辑器就两个,一个是 emacs,
2021-01-31 10:16:56 189
原创 boot.asm OS引导程序
直接上源代码了。org 0x7c00start: mov ax, cs ;; 实模式 cs 为 零 mov ss, ax ;; mov ds, ax mov es, ax mov si, msg ;; 指到字符串位置print: mov al, [si] add si, 1 ;; cmp.
2020-05-23 23:07:02 275
原创 scl cmap 的实现
数组bucket_array挂链表的形式,数组的每个下标当着一个hash 值。一个键hash 完之后,与 数组大小进行取余,得到的数字就是数组的小标,新的节点就往下挂载节点。#ifndef __CMAP_H__#define __CMAP_H__#include "dscommon.h"#ifdef __cplusplusextern "C" {#endifint key_cmp_int(void* key1, void* key2);int value_cmp_int(void* k
2020-05-17 21:58:44 306
原创 nginx-1.12.1代码移植
提取代码中的数据结构,用于自身的项目。代码地址:https://gitee.com/jesson-deng/nginx1.12.1-transplant
2020-05-05 17:33:01 135
原创 nginx 自定义 etag算法为文件md5
这里有篇关于 etag 的文章。https://www.cnblogs.com/yangguoe/p/8462566.html实现代码如下:https://github.com/jxdeng3264/nginx-static-etags.git在 :https://github.com/z360394624/nginx-static-etags的基础上解决了内存泄露以及,...
2020-04-30 14:20:25 523
原创 mac 下编译 tassl,arm64 armv7 armv7s 架构
由于官方都没有相应的编译脚本,自己也摸索了好久,特意记录下来。源码目录 TASSL-xx脚本文件 compile-v7.sh compile-v7s.sh compile-arm64.sh内容如下:#!/bin/bashOUT_DIR=out-v7rm -rf $OUT_DIRcd TASSL-v7make clean # 设置编译器export CC="c...
2020-04-16 19:53:53 489 6
原创 C语言提取字符串中的内容
int main(){ char *src = "1998-08-09"; char year[10]; char month[10]; char day[10]; sscanf(src, "%[^-]-%[^-]-%s", year, month, day); printf("%s-%s-%s\n", year, month, day); return 0;}
2020-04-15 22:30:17 2407
原创 [nginx] 编译
这里提到的代码和脚本都是在 仓库 https://gitee.com/jesson-deng/nginx-1.12.2-code-reading.git 中。 ./configure: error: ngx_http_lua_module requires the Lua library.安装lua 的开发环境yum install lua-devel运行 nginx-1.12.2-c...
2020-04-12 23:16:15 100
原创 makefile 模板
.PHONY : all clean rebuildMKDIR := mkdirRM := rm -frCC := gccDIR_DEPS := depsDIR_EXES := exesDIR_OBJS := objsDIRS := $(DIR_DEPS) $(DIR_EXES) $(DIR_OBJS)EXE := app.outEXE := $(addprefix ...
2020-03-29 22:34:45 133
原创 【jni】linux 下生成 jni 并进行测试
文件目录第一步, 通过 JNIDemo.java 文件生成接口函数 , .h 文件package com.junxingpack.test;public class JNIDemo {//定义一个方法,该方法在C中实现public native void testHello();public static void mai...
2020-02-24 09:59:19 305
原创 【C语言从入门到构建大型项目】-- 第零章: 环境搭建
一、Windows 下环境搭建a. 下载IDE(Integrated Development Environment),写代码的工具,我这里选择的是 Visual Studio 2013b. 安装之后,可以在系统中找到 Visual Studio 2013c. 现在,我们来建立第一个HelloWorld程序。运行Visual Studio 2013后,可以看到...
2020-02-16 11:28:07 434
原创 【C语言从入门到构建大型项目】-- 目录
本专栏从实战的角度,从C语言基础语法讲起,每一节都有实例代码,鼓励大家边学习,边动手学,如果只是学学理论的话,我觉得随便找一本教材都比我的专栏写的好。动手练习后看到自己的成果,也会更有动力继续学习下去。为什么很多学生在学校里面学完C语言之后,觉得没什么用,最后放弃,原因就是学完那些语法之后,只做过书上的几个练习,没有写过其他代码,不知道C语言到底能干什么。下面是本专栏的目录,方便大...
2020-02-16 10:40:03 1041 1
原创 一段简单高效的冒泡排序代码
这段代码思路是一个朋友在群里分享的,我简单看了下,发现思路真的很好。下面是我的简化版,先给贴出代码。void bubble_sort(vector<int> &vec){ int i = 0; while (i < vec.size() - 1) { if (vec[i] > vec[i + 1]) { ...
2020-02-15 13:24:00 572
原创 Gmssl 编译去掉版本号以及改库名
1. 下载源码https://github.com/guanzhi/GmSSL.git解压,进入源码目录2. 编译为了避免与系统的 libssl.so 和 libcrypto.so 冲突,建议设置 prefix。./config --prefix=/your/lib/save/path打开 Makefile 文件,大概18行SHLIB_MAJOR=1SHLIB_MI...
2020-02-13 11:29:05 864
原创 fwknop 如何防重放攻击
fwknop是 FireWall KNock OPerator 的简写,实现了一种叫单包授权(Single Packet Authorization (SPA))的方案。本文将通过解析 fwknop 源码,来讲解fwknop 是怎么做到防重放攻击的。
2020-02-13 09:21:27 1371 1
原创 emacs常用按键/命令
命令说明:C-x -> Ctrl+xM-x -> Alt + x (windows)Meta+x (mac os)C-x C-f 先同时按 Ctrl+x 再同时按 Ctrl+f, 你也可以一直按着 Ctrl,再先按x, 再按 f文件操作类C-x C-f 打开文件C-x C-s 保存当前buffer到文件C-x C-c 关闭...
2020-02-09 09:32:05 233
原创 类中或结构体中含队列,的拷贝构造函数的书写
Node::Node(){ }Node& Node::operator=(const Node&ths){ this->_q = ths._q; return *this;}//void Node::Destroy()//{////}Node::~Node(){ std::cout<<"my destro...
2015-12-03 11:11:51 1110
原创 leetcode Add Two Numbers
#include #include using namespace std;/** * Definition for singly-linked list. */struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public
2015-06-03 10:08:06 386
转载 lua中的序列化
引用:http://blog.codingnow.com/cloud/LuaSerializeTable/--打包数据table, --1.支持table 嵌套和循环引用 2. 支持 number, string, booleanfunction TableToString(t) local mark={} local assign={} local function
2015-05-12 16:39:08 785
原创 保存图片感兴趣区域
#include "cv.h"#include "highgui.h"void videoFork(CvCapture *capture){ int mod = 30;////每十张取一张 int count=0; int iimage=0; char imagename[20]="\0"; if( capture==NULL) return ; IplImage *sou
2013-10-25 10:10:54 842
原创 QT获得目下的所有文件名
QString path = "./testSourImage"; QDir dir(path); if( !dir.exists() ) return ; dir.setFilter( QDir::Files); dir.setSorting(QDir::DirsFirst); QFileInfoList list = dir.entryInfoList(); std::ofst
2013-10-24 14:25:44 711
原创 opencv
矩阵操作#include "cv.h"#include "highgui.h"int main(int argc ,char **argv){double a[]={1,2,3,4,5,6,7,8,9,10,11,12};CvMat Ma = cvMat(3,4,CV_64FC1,a);int n = Ma.cols;float *data = Ma.dat
2013-10-03 11:32:19 1081
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人