MENU

分类 摸爬滚打 C++ 之路 下的文章

makefile文件编写技巧

前言

之前用C++写的都是一些小小几个文件,所以直接使用gcc/g++直接编译文件。但是最近做一个webserver项目,涉及到头文件且多个文件存在有依赖关系,因此使用makefile编译变得更方便。
编译过程为:源文件首先会生成中间目标文件,再由中间目标文件生成执行文件。也即编译+链接过程。

makefile

makefile编写按照如下格式

target ... : requisites ...  目标 : 依赖
    command                     命令(注意命令必须要以Tab键开始)

大致执行过程:①先在目录中找到makefile或Makefile文件 ②在makefile文件中找到第一个目标target做为最终生成目标文件 ③判断最终目标文件是否存在,不存在最终目标文件或者.o的依赖文件更新时间比最终目标文件新,则重新执行编译生成最终目标文件

阅读全文

Linux下C++文件判断方式

前言

开发webserver中涉及到其中的读取文件,做一个静态webserver常常需要都文件,比如HTML文件、CSS文件、图片资源等。竟然用过就当在记录整理一下。

详细说明

主要涉及到stat()函数、struct stat结构体、S_ISDIR宏及S_ISREG宏。

阅读全文

字节序的理解

前言

最近一直在看《深入理解计算机系统》补充基础知识,看到有关介绍大端小端的介绍,下面就做个总结。

详细

  • 大端:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。(符合我们平时的读写字符数值)
  • 小端:是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。

举例:如数组0x2356,高位为:0x23 低位为:0x56,在内存的存放如下。

内存地址 小端模式 大端模式
0x5000 0x56 0x23
0x5001 0x23 0x56

阅读全文

C++内存对齐

字节对齐:计算机中内存大小的基本单位是字节(byte),理论上讲,可以从任意地址访问某种基本数据类型,但实际的计算机系统对基本类型数据在内存中存放的位置有限制,即它的地址必须是2、4、8、16等倍数,则就要求各种数据类型按照一定的规则在空间上排序,这就是对齐。

阅读全文