随笔分类 -  C

摘要:简介 Tinyhttp是一个轻量型Http Server,使用C语言开发,全部代码只500多行,还包括一个简单Client。 Tinyhttp程序的逻辑为:一个无线循环,一个请求,创建一个线程,之后线程函数处理每个请求,然后解析HTTP请求,做一些判断,之后判断文件是否可执行,不可执行,打开文件,输 阅读全文
posted @ 2019-08-13 00:45 WindSun 阅读(1234) 评论(0) 推荐(0)
摘要:解决办法:项目名称-右键属性-C/C++ - 预处理器 -预处理器定义 - 右侧下拉框中选择“编辑”- 在第一个编辑框中添加_CRT_SECURE_NO_WARNINGS 阅读全文
posted @ 2019-08-09 14:55 WindSun 阅读(1815) 评论(0) 推荐(0)
摘要:&& 和 || 和 !属于逻辑运算符号 & 和 | 和 ^ 属于位操作符 一、&&和&的区别 1.1 相同点: &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。 1.2不同点 阅读全文
posted @ 2019-08-08 16:23 WindSun 阅读(4127) 评论(1) 推荐(1)
摘要:今天遇到一个问题 题目描述: 实现函数 unsigned int ipanel_parse_ip_addr(const char*ip) 功能:解析IPv4地址 测试用例: unsigned int ip addr=ipanel_parse_ip_addr("192.168.10.1"); printf("%x\n",ip_addr); 要求输出:c0a80a01不允许使用字符串相关库函数 请在程... 阅读全文
posted @ 2019-08-08 10:36 WindSun 阅读(628) 评论(0) 推荐(0)
摘要:1、定义 C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为: int main (int argc,char *argv[]){…} int main (... 阅读全文
posted @ 2019-08-03 00:38 WindSun 阅读(17766) 评论(0) 推荐(1)
摘要:概述 Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库。linux系统有几个重要的目录存放相应的函数库,如/lib /usr/lib。 静态函数库: 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进可... 阅读全文
posted @ 2019-08-02 12:38 WindSun 阅读(4557) 评论(0) 推荐(0)
摘要:堆和栈的区别: 栈的特征 执行的速度相对较快; 空间较小; 生存期由系统决定; 作用域较小; 有名空间,可以通过变量名或者数据名访问; 堆的特征 执行的速度相对较慢; 空间较大; 生存期由“自己”决定,malloc申请,free释放; 作用域很大(整个程序都可以访问); 无名空间,只能通过指针使用; C语言空间的申请 malloc 功能: 分配 size 字节的未初始化内存。若分配成功,则返回指向... 阅读全文
posted @ 2019-08-02 01:19 WindSun 阅读(462) 评论(0) 推荐(0)
摘要:柔性数组的概念 柔性数组(flexible array member)也叫伸缩性数组成员,这种结构产生与对动态结构体的去求。在日常编程中,有时需要在结构体中存放一个长度是动态的字符串(也可能是其他数据类型),一般的做法,实在结构体中定义一个指针成员,这个指针成员指向该字符串所在的动态内存空间。 在通 阅读全文
posted @ 2019-08-01 23:44 WindSun 阅读(6591) 评论(0) 推荐(4)
摘要:大小端的由来 当数据类型为int,在32bit的系统中,它需要占用4个字节(32bit),这个时候就会产生这4个字节在寄存器中的存放顺序的问题。比如int x = 0x12345678。具体的该怎么存放呢?这个时候就需要理解计算机的大小端的原理了。 图解大小端 大小端主要看低地址存放的是高字节还是低字节 低地址中存储的是高字节位,为大端模式 低地址中存放的是低字节位,为小端模式 大小端存储说明 ... 阅读全文
posted @ 2019-08-01 17:32 WindSun 阅读(1389) 评论(0) 推荐(0)
摘要:位域的概念 1个字节包含8位,有些变量保存的数据不需要占用这么长的空间(比如bool类型,只有两个状态true和false, 1位就可以搞定,剩下的7位就浪费了),这就催生了“位域”结构,位域将1个字节划分成不同的区域,每个区域都有个位域名,程序员可以代码通过位域名访问其中的数据。 位域的声明 位域 阅读全文
posted @ 2019-08-01 17:10 WindSun 阅读(1379) 评论(0) 推荐(0)
摘要:字节对齐原因: 1)平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据,某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常2)硬件原因:经过内存对齐之后,CPU的内存访问速度大大提升,帮助cpu寻址。 【注意】(对齐位数跟处理器位数和编译器都有关)VS, VC等编译器默认是#pragma pack(8),所以测试我们的规则会正常;注意gcc默认是#pragma p... 阅读全文
posted @ 2019-08-01 16:28 WindSun 阅读(2629) 评论(0) 推荐(0)

博客已停更,文章已转移,点击访问