C 简易基础开发框架 - simple c
引言
一个为 简单高效而生的 简易跨平台的 纯C开发框架.
githup上源码 https://github.com/wangzhione/sconsole_project
请容我细说 simple c的优势.
1.适合新手,刚开始思考开源框架了. 这个框架设计和代码都容易
2.稀缺,C 的开源框架,要么很出名, 难度大, 要么就没有, 这里定位是中等左右
3000 - 5000 行代码量没有过多的网络层,图形层东西,适合语法,逻辑开发层研究.
3.特别适合在校生, 学习. 刚上学的时候,用了这个框架最开始绉形, 为老师做数据统计分析的
更好的发展, 以个人读书经验而言. 在window上比这个框架 学习用处更大我就觉得
自制编程语言 那位大牛 写的两个框架 , 大家可以试试
对于 linux , 毕竟linux上优秀的开源框架太多了. 前提你能力够好,否则你也看不懂.
倒不如看这个. 简单还能改造成自己的框架.
在此声明,这个框架随便改, 随便玩, 不介意. 都是你的. 心情好,还可以免费帮你维护
修复一下.
前言
这个项目刚发出去, 比较简单. 这里会详细介绍一下.经过仔细思考, 这个项目开发
侧重点在window上,测试侧重点在linux上, 发布侧重点也在linux上. 为什么呢. 容菜鸟我普及一下.
1. 同等条件下linux程序员 编程水平比 window程序厉害
因为linux 的学习成本,研究成本比window高很多, 需要自己折腾很久. 对于同样的知识.
2. window 上最大优势是 开发效率高, 很方便的查看源码. 因为有宇宙最强IDE VS 旗舰版.
所以总结是, 要想提高技术,研究linux开发,要想提升工作开发效率,用vs. 我这里采用的思路是 使用VS开发
代码最初的demo,后面放到 linux上 详细测试调优.
扯完了 先看 window 上 simple c 结构
上面两个图, 就是最终项目开发框架图. 源码见git, 也可以做成项目模板. 后面再说了.
看一下 linux上项目框架图
到这里基本对这个项目有了大概的了解了. 下面会细细说明作用的.
正文
原本想主打linux,后面觉得别说linux框架NB的无数,unix的框架更是望其项背. 后面还是猥琐一下,在window 上
说说纯C语法开发吧. 下面那就开始吧.
window 上使用说明
说的都是大白文,走个流程
首先是main 文件夹
这里主要放的是主要运行模块代码,对外用的,测试用的. 上面几个test_*.c 代码都是相应的 模块测试代码
后面 readme 文件夹
help.txt 这里是关于VS2015 使用上面的一些配置
module 是模块代码文件夹
细分 pthread 模块文件夹
pthread for window上代码,个人修改了冲突,让其能够在当前系统上运行
struct 文件夹
系统内部使用的 数据结构
schead 文件夹
保存了开发中用的 宏定义, 各种辅助模块,文件,日志,配置, 原子锁等.
总的而言框架就这样了. 再细说 请查看我以前 写的博文 C 基础框架那些库的代码设计
介绍的很详细.
linux 上使用说明
linux上 代码比window精简了很多. 因为linux系统内置很多模块. 从这里都能看出 linux从性能上比window高效太多了.
也就图形上研究人员少,有点薄弱. 目前网络层linux 优势大. 图形层window优势大.
还有需要说的一点是 linux 上编译步骤需要我们自己写. Makefile 文件如下
C = gcc
DEBUG = -g -Wall -D_DEBUG
#指定pthread线程库
LIB = -lpthread -lm
#指定一些目录
DIR = -I./module/schead/include -I./module/struct/include
#具体运行函数
RUN = $(CC) $(DEBUG) -o $@ $^ $(LIB) $(DIR)
RUNO = $(CC) $(DEBUG) -c -o $@ $^ $(DIR) # 主要生成的产品
all:test_cjson_write.out test_csjon.out test_csv.out test_json_read.out test_log.out\
test_scconf.out test_tstring.out #挨个生产的产品
test_cjson_write.out:test_cjson_write.o schead.o sclog.o tstring.o cjson.o
$(RUN)
test_csjon.out:test_csjon.o schead.o sclog.o tstring.o cjson.o
$(RUN)
test_csv.out:test_csv.o schead.o sclog.o sccsv.o tstring.o
$(RUN)
test_json_read.out:test_json_read.o schead.o sclog.o sccsv.o tstring.o cjson.o
$(RUN)
test_log.out:test_log.o schead.o sclog.o
$(RUN)
test_scconf.out:test_scconf.o schead.o scconf.o tree.o tstring.o sclog.o
$(RUN)
test_tstring.out:test_tstring.o tstring.o sclog.o schead.o
$(RUN) #产品主要的待链接文件
test_cjson_write.o:./main/test_cjson_write.c
$(RUNO)
test_csjon.o:./main/test_csjon.c
$(RUNO)
test_csv.o:./main/test_csv.c
$(RUNO)
test_json_read.o:./main/test_json_read.c
$(RUNO)
test_log.o:./main/test_log.c
$(RUNO) -std=c99
test_scconf.o:./main/test_scconf.c
$(RUNO)
test_tstring.o:./main/test_tstring.c
$(RUNO) #工具集机械码,待别人链接
schead.o:./module/schead/schead.c
$(RUNO)
sclog.o:./module/schead/sclog.c
$(RUNO)
sccsv.o:./module/schead/sccsv.c
$(RUNO)
tstring.o:./module/struct/tstring.c
$(RUNO)
cjson.o:./module/schead/cjson.c
$(RUNO)
scconf.o:./module/schead/scconf.c
$(RUNO)
tree.o:./module/struct/tree.c
$(RUNO) #删除命令
clean:
rm -rf *.i *.s *.o *.out __* log ; ls -hl
.PHONY:clean
从上往下读,很基础,因为我的Makefile 学的很基础. 先编译什么,依赖什么. 这样把这个项目编译起来了. 大家试试. 发布的时候 去掉-D_DEBUG 就可以了.
想再说一点, 我们在window和linux上协同工作的时候,常遇到编码问题.
解决方案
window上编译器 IDE 采用英文环境 默认 utf-8
linux 采用 enca 很好用, 怎么安装, 自己google 一下.
到这里有点懒了,不想细说了. 就这样吧. 说的再多, 也说不清楚所有..............................
后记
错误是难免的,欢迎吐槽...
这个框架出来,是该写一写好玩的东西. 有机会分享几个建议的游戏开发. 以后有机会准备分享一些. 下一个阶段有机会再分享一些网络库和数据库开发的知识.
bye...
C 简易基础开发框架 - simple c的更多相关文章
- Dos简易基础及常用Dos命令
Dos简易基础及常用Dos命令 什么是cmd? cmd是command的缩写,意指操作系统中的命令行程序,一般说的都是Windows中的Dos系统. 如何打开cmd? 键盘操作:Win + R 输入c ...
- Solon 1.5.29 发布,轻量级 Java 基础开发框架
本次版本主要变化: 增加 captcha-solon-plugin 插件(提供滑块验证与选文字验证能力) 插件 sa-token-solon-plugin,升级 sa-token 为 1.26.0 插 ...
- 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.40 发布
Solon 已有120个生态扩展插件,此次版本以细节打磨为主: 增加 mybatisplus-solon-plugin 插件 //至此,Solon 已完成国内外主流的5个ORM框架插件适配 插件 so ...
- 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.48 发布
Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 增加 solon.serialization,做为序列化的基础插件 优化 所有Json序列化插件,使之可方便定制类型序列化 public ...
- 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.52 发布
Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 插件 mybatis-solon-plugin 增加 mappers 单行配置支持 之前的多行模式: mybatis.db1: type ...
- Solon & Solon Cloud 1.5.62 发布,轻量级 Java 基础开发框架
Solon 已有120个生态扩展插件,此次更新主要为细节打磨,且对k8s和docker-compose更友好: 1.插件 solon.coud ,事件总线增加支持本地同主题多订阅模式(以支持同服务内, ...
- 简易的开发框架(微服务) Asp.Net Core 2.0
Asp.Net Core 2.0 + Mysql Orm + Ioc + Redis + AOP + RabbitMQ + Etcd + Autofac + Swagger 基础框架: https ...
- Xcode简易基础篇,以新手角度去操作
声明:此Newlife XCode非Mac的XCode,避免误会. 日常用的Newlife X组件的相关资源,不限于XCode,只是以XCode组件为主: 1.QQ群:1600800 2.博客 : h ...
- C基础 多用户分级日志库 sclog
引言 - sclog 总的设计思路 sclog在之前已经内置到simplec 简易c开发框架中一个日志库. 最近对其重新设计了一下. 减少了对外暴露的接口. 也是C开发中一个轮子. 比较简单, 非常适 ...
随机推荐
- linux取某个字段排重
排重统计 cat a.txt | awk -F ';' '{print $2}' | sort -u | wc -l
- js 数组对象,数组的使用
var a =new Array(1,2,3,4,'a','b','c',{x:1,y:2}); alert(a[7].x); //数组之中可以定义数组. var b=['a','b','c']; c ...
- Leetcode026. Remove Duplicates from Sorted Array
water class Solution { public: int removeDuplicates(vector<int>& nums) { for(vector<int ...
- 有联系的jQuery选择器
1.包含关系 2.相邻关系 //JavaScript$(document).ready(function () { $(".studentName + div").hide(); ...
- javacript 优化2
上面一篇文章大致介绍了一些javascript当中使用的一些小技巧,当下这篇文章继续介绍一下内存管理.松散耦合.性能方面的一些小知识.为避免错误应该注意的点 内存管理 1.循环引用 如果循环引用中包含 ...
- 索引 使用use index优化sql查询
好博客:MySQL http://webnoties.blog.163.com/blog/#m=0&t=1&c=fks_08407108108708107008508508609508 ...
- leetcode 70
70. Climbing Stairs You are climbing a stair case. It takes n steps to reach to the top. Each time y ...
- poj3692_Kindergarten
这题目大意是:男孩互相认识,女孩互相认识,一部分男女之间认识,老师要选一部分人,要求这部分人必须都相互认识. 这是一个二部图,先求出补图,在补图中G‘左右两点有连线说明在G中两者不认识,反之成立. 所 ...
- Unieap3.5Java端常用公用方法
String OrgId = McssComMethod.getDimensionID(); Date systemDate = DataStoreUtil.getOracleSystemDate( ...
- Javascript 常用系统内置函数
1:在数组指定位置插入元素 array.splice(2, 0, "three"); //在索引2的位置,删除0个元素后,插入元素“three” 例子: // 原来的数组 va ...