C
jieyannnhereCREAM
信息工程学生,准备跳去公务员大坑
展开
-
tinyhttpd学习笔记:过程的文字描述
socket的完整过程:startup:1.创建满足一定类型(例如:IPv4)、一定协议(例如:TCP)的套接口httpd2.创建sockaddr_in的结构体name,包含地址族(例如:AF_INET),IP地址addr(例如:127.0.0.1)和端口port(例如:1234)的信息3.设置套接口httpd的属性4.将套接口httpd和结构体name的IP地址和端口,绑定(bind)...原创 2020-03-10 14:39:15 · 202 阅读 · 0 评论 -
tinyhttpd学习笔记:过程的高级语言描述
源码来自https://github.com/EZLippi/Tinyhttpd/blob/master/httpd.cmain函数解析int main(void){ /*socket:套接字。计算机通过socket和其他计算机进行通信*/ int server_sock = -1; /*u_short:unsigned short,应该是无符号两字节整型,范围在[0,65...原创 2020-02-08 16:48:08 · 361 阅读 · 0 评论 -
cpp学习day1:essential书本后习题
1.Q:注释掉using namespace std会发生什么?A:接下来的标识符都会变成未声明的2.Q:把main()改成my_main会发生什么?A:显示“fatal error LNK1120: 1 个无法解析的外部命令”这里的具体原因是main打错了。...原创 2020-01-14 09:37:03 · 131 阅读 · 0 评论 -
第十七天C进阶:值与类型;指针变量
1.对于C语言,不同类型的值本质上都是由固定位数的值(例如32位),只不过编译器帮我们产生指令,将值解释为某种类型(例如float,当程序访问float型变量,编译器就会产生浮点型指令)。2.{指针变量} 的类型 取决于 它 {指向的地址位置对应的变量} 的类型。例如:float c = 3.14; //变量c的类型是floatfloat *e = &c; //指针变量e的类型就...原创 2019-11-03 23:10:39 · 95 阅读 · 0 评论 -
第十六天C进阶:gets_s;strcpy_s;下标;左值与右值;操作符*,&
1.书本上的gets函数,在C++14标准以后被移除,取而代之的是相同用法的gets_s();2.书本上的strcpy函数,同样在vs中会被推荐使用更为安全的strcpy_s函数。该函数有两参数和三参数的版本。三参数的用法如下:errno_t strcpy_s( char *strDestination, size_t numberOfElements, const char *s...原创 2019-10-27 16:12:28 · 178 阅读 · 0 评论 -
第十五天C进阶:float
1.当使用float浮点数运算时,若结果出现inf,可能是运算过程出现了以下状况:INF表示超出浮点数表示范围(值溢出);当值很大或很小时会输出INF:1.0/0.0,-1.0/0.0,0.0+inf=inf;log(0);得到inf时就查看是否有溢出或者除以0;...原创 2019-10-20 13:23:08 · 129 阅读 · 0 评论 -
第十四天C进阶:
1.使用while实现处理一列以一个负值作为结束标志的值while(scanf("%f",&value)==1){ if(value<0) break; /*process the nonnegative values*/}while循环的测试在循环体开始执行之前进行当你需要循环体至少执行一次时,选择do2.switch的执行流将贯穿每一个case标签,而不会...原创 2019-10-13 19:01:59 · 82 阅读 · 0 评论 -
第十三天C进阶:编写头文件,引用其他函数;预定义的宏;宏的好处
前提:A1.c和A2.c都在同一个project’里面1.怎样编写头文件,调用另一个源文件里面的函数以个人具体程序为例1.先在头文件里面新建一个calender.h。里面具体内容如下#ifndef WAIT#define WAIT/*这两个WAIT的名字随便改都行*//**等待x毫秒*/int wait(unsigned long x){ clock_t c1 = clock...原创 2019-09-14 12:29:12 · 334 阅读 · 0 评论 -
第十二天C进阶:简单原则;执行过程
1.简单原则:清晰原则。代码要写得尽量清晰,避免晦涩难懂。清晰的代码不容易崩溃,而且容易理解和维护。重视注释。不为了性能的一丁点提升,而大幅增加技术的复杂性,因为复杂的技术会使得日后的阅读和维护更加艰难。模块原则。每个程序只做一件事,不要试图在单个程序中完成多个任务。在程序的内部,面向用户的界面(前端)应该与运算机制(后端)分离,因为前端的变化往往快于后端。组合原则。不同的...原创 2019-09-13 16:44:08 · 98 阅读 · 0 评论 -
第十一天C进阶:ctime_s;strcpy;宏
1.ctime_s函数使用方法void calender_ver2(void) { time_t current= time(¤t);/*获取当前时间*/ char buff[26]; ctime_s(buff, sizeof buff, ¤t); printf("当前日期和时间:%s",buff);}2.想要清空某串字符串,可以使用s...原创 2019-09-13 17:01:55 · 3350 阅读 · 0 评论 -
第十天C进阶:time,localtime_s
在vs2010之后的版本中,想要显示当前时间,需要用到time函数和localtime_s函数。这两个函数的使用示例如下 time_t current; /*日历时间(单独的算术类型 time_t)*/ struct tm timer; /*分解时间(结构体)*/ /* *获取时间 *time函数,localtime函数 都是<time.h&...原创 2019-09-13 17:01:06 · 423 阅读 · 0 评论 -
第九天C进阶:malloc/calloc/free
典型的错误的对数组的声明int max_stage;int main(){ printf("训练次数:"); scanf_s("%d",&max_stage); int score[max_stage]; ...}错误1:变量的"声明"应该放在"语句"的前面错误2:声明的数组元素个数不是常量表达式正确的使用动态的存储空间:malloc/calloc/fr...原创 2019-09-13 17:00:40 · 94 阅读 · 0 评论 -
第二天C进阶:sizeof;\;强制转换类型;clock
求数组元素个数,请使用sizeof运算符。sizeof(数组名);而下面这样则可以求数组元素大小(单位:字节)sizeof(数组名[i]);\r\r可以把光标回到本行开头,使得看起来像是重写了一样。但是重写的内容必须长于原有内容。\a\a在句中用于发出警报声音蜂鸣声。\b\b退格符号。其中,输出这个"\b \b"可以消除最后一个字符。强制转换符号:(...原创 2019-09-13 16:58:19 · 195 阅读 · 0 评论 -
第三天C进阶:clock_t,clock();putchar,strlen;4d
clock_t a;声明的变量a专门用于后面存储时间值,利用clock函数赋值a=clock();原创 2019-09-13 16:59:25 · 154 阅读 · 1 评论 -
第五天C进阶:用while和指针遍历数组;char *p[];作用域
while(*s){/*---省略其他内容---*/s++;}*:间接运算符对 *s进行求值,就可以得到指针s指向的字符这样可以通过指针遍历数组char *p[]={"ABC","123","x"}char *p[]比起单纯的多维数组,字符尾没有多余的空间,但是得准备一部分空间来储存指向这部分空间的指针数组。因此占用的字节数也不同。即:p[0]指向"ABC"的开...原创 2019-09-13 16:59:44 · 1253 阅读 · 0 评论 -
第四天C进阶:A?B:C
表达式1 ? 表达式2 : 表达式3如果表达式1的值不为0,执行表达式2;表达式1的值为0,执行表达式3.2.signed char 带符号的整数类型unsigned char 无符号的整数类型...原创 2019-09-13 16:59:37 · 190 阅读 · 0 评论 -
第六天C进阶:int与char;形式参数元素与指针
数字字符(char)减去’0’,可以得到相应的整数值(int)整数值(int)加上’0’,可以得到对应的数字字符(char)即:const char s[];const int no[];s[i]==‘0’+no[i];原创 2019-09-13 16:59:59 · 208 阅读 · 0 评论 -
第七天C进阶:scanf_s与数组
char buff[10];...scanf_s("%s",buff,10);在使用scanf_s函数时,如果要存入的是数组,必须在后面表明数组的长度(缓冲区)原创 2019-09-13 17:00:17 · 1091 阅读 · 0 评论 -
第八天C进阶:char数字字符编码;strcmp
char no[10];...no[0]='1'+rand()%9;只要在’1’的基础上加上0~8,就能获得 ‘1’ ~'9’的对应数字字符编码。给char型的字符串赋值时,末尾一定要加上’\0’,告诉系统这是字符串末尾。就像这样:no[9]='\0';strcmp(const char *s1,const char *s2):对比两个字符串。完全相同则输出0。str...原创 2019-09-13 17:00:32 · 245 阅读 · 0 评论 -
第一天C进阶:if。。。else;rand生成随机数;do。。。while
if(...) ...else if(...) ...else ...这样的程序的可读性更好、判断次数更少,相对的效率高于下面的几种形式.不过编译器的优化技术会内部删除下面程序多余的判断,因此实际效率差别不大。if(...) ...if(...) ...if(...) ...又或者是if(...) ...else if(...) ...else if(...) ......原创 2019-09-13 16:57:42 · 149 阅读 · 0 评论