汉中城乡建设网站首页,主页页面,企业网站推广建议,wordpress 忘记密码页面该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。 其教学视频见#xff1a;[C高级教程]从零开始开发服务器框架(sylar) C服务器开发1——项目介绍/分布式/#ifndef与#pragma once 项目介绍分布式#ifndef与#pragma once 最近开始学习下C的项目开发#xff0c;找了很多…该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。 其教学视频见[C高级教程]从零开始开发服务器框架(sylar) C服务器开发1——项目介绍/分布式/#ifndef与#pragma once 项目介绍分布式#ifndef与#pragma once 最近开始学习下C的项目开发找了很多在b站发现了一个教开发一套C高性能服务器框架的up(sylar-yin)而且它有提供源码以及自己的博客。内容看着很全就打算学一下。 目前我的C能力仅仅是会基础以及刷了几十到算法题。但是刷题太枯燥了我离实习找工作还有段时间所以想抽空先学个完整的开发项目就挑了这个如果后面发现学不会我可能会放弃但我会尽量学习完这个up的80个视频。本着需要什么学什么的态度我遇到不会的就查一下然后做个笔记。
这次的笔记内容是项目介绍、什么是分布式、#ifndef与#pragma once
项目介绍
详细见这页博文http://www.sylar.top/blog/?p137 github原话C高性能分布式服务器框架,webserver,websocket server,自定义tcp_server包含日志模块配置模块线程模块协程模块协程调度模块io协程调度模块hook模块socket模块bytearray序列化http模块TcpServer模块Websocket模块Https模块等, Smtp邮件模块, MySQL, SQLite3, ORM,Redis,Zookeeper)
我看完感觉很多都不懂先搁置吧。先学习下“分布式”。
分布式
我主要看的这篇什么是分布式分布式和集群的区别又是什么这一篇让你彻底明白 分布式多个系统在多个服务器上协作完成单个任务。 集群式单个系统在多个服务器上 ~~~~~ 完成单个任务。 概括两者的差异分布式系统的服务器任务是不同的它们之间相互调用完成了一个大的任务。而集群式系统的服务器任务是相同的它们只是分担了客户端的请求但是最终需要汇总到主服务器。这导致像数据库、主服务器等可能会过载。
#ifndef与#pragma once
视频1中最开始讲的代码是log.h。然后吃下了如下的结构
#ifndef __SYLAR_LOG_H__
#define __SYLAR_LOG_H__
//这里放置了各种include和定义语句
#endif这种写法是为了避免重复编译的因为这个log.h文件很可能会被多个文件include如果用了这种写法当编译过一次后第二次遇到include时就会自动跳过这个编译。
它和#pragma once的功能很像我看了我之前刷题的代码是将#pragma once放在了代码最前面。
差异1#ifndef是打开文件后根据__SYLAR_LOG_H__来确认是否已经编译过。所以它需要打开文件查看后后才能确定编译时耗时比较长。注有可能会因为不同头文件的宏名相同后后编译的那个头文件被跳过编译导致编译时报错某些变量或类没有声明。2#pragma once是针对文件的所以没有宏名相同这种问题并且它因为不需要打开文件而使得编译速度更快。注如果有头文件被拷贝多份就会出现重复编译的问题。且这种方法在一些老编译器上不支持。
个人认为还是选择第一种靠谱些虽然编译慢但出错的可能性更低。