自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

转载 sharkwire抓包分析

https://blog.csdn.net/u013258415/article/details/77941577

2018-09-11 16:17:06 390

原创 枚举转换字符串方法

enum{ EVENT_START, EVENT_SUCCESS, EVENT_FAILED, EVENT_IDLE};#define STR_EVENT(M) \((M)==EVENT_START?"EVENT_START":\((M)==EVENT_SUCCESS?"EVENT_SUCCESS":\((M)==EVENT_FAILED?"EV...

2018-07-18 14:56:50 875

翻译 标准I/0函数解析

scanf&printfint scanf(const char * restrict format,...); 标准化输入函数,读取字符串的时候,遇到空格(换行,TAB)就停止,所以只能输入一个单词gets&putsgets(char* buffer);遇到回车的时候才结束输入,同时抛弃回车符,但是加一个‘\0’,并形成字符串,但是gets有可能出现越界问题,不能检测输入字符串是...

2018-07-03 16:37:19 477

原创 C的内存分配方式和内存分配函数的内在机制

C语言的内存分配主要有一下几种情况1.静态存储区分配。内存在编译阶段就被分配好的,在程序执行期间一直存在。程序结束才释放。一般全局变量,static变量采用这种方式2. 从栈上分配。这种一般是执行函数时采用。函数内的局部变量都是在栈上获取内存,函数执行完毕的时候释放内存3.从堆上分配。这种是程序员自己调用malloc/new来申请内存,也需要程序员自己释放C语言和内存申请相关的函数有alloc,c...

2018-07-03 11:00:46 193

原创 C专家编程

1.NUL和NULL的区别    NULL代表指针不指向任何地方,NUL是代表字符串的结尾。字符串以’\0'结尾,NUL是'\0'的一个宏,需要自己定义2switch中没有任何符合条件的case的情况怎么处理?    有default则运行default,没有则整个switch什么都不做3 默认缺省关键字的函数是全局可见吗    void fun1(){...}这样的函数是全局可见的,任何链接到它...

2018-05-08 11:21:13 104

转载 Linux时间类型、函数和休眠函数

http://blog.csdn.net/luotuo44/article/details/39374759

2018-05-02 17:48:43 202

原创 const限定符和指针的关系

当有const参与到指针的赋值操作时,经常让人困扰,主要是两个方面1. int const *p ,const int*p ,int *const p...这些到底是怎么分辨2.const int num=100;   int *p=#上面的代码会什么会有warning信息出现针对第一个问题,可以这么理解:凡是出现在*之前的const限定符,都是在限定指针指向的对象    int ...

2018-04-23 10:10:12 264

原创 python 中类的方法的异同

python的类中存在三种方法,分别是实例方法,类方法,静态方法1. 实例方法    在一般情况下,实例方法是需要从类的对象访问的(大部分情况是酱紫的),而且实例方法的第一个参数必须是self(这个必须是为了方便,其实可以使abc或者deaa等任何名字)    总结:实例方法从类的对象访问,第一个参数是self2.类方法    和实例方法感觉差不多,区别在于,类方法可以从类访问,也可以从类的对象访...

2018-04-20 17:10:31 212

原创 python的序列

Python中最基本的数据结构是序列,包括6种内建序列:列表,元组,字符串,unicode字符串,buffer对象和xrange对象这里面最常用的是列表,元组和字符串。python为序列定义了一系列的通用操作,包括索引、切片、序列相加、乘法、成员资格、长度、最大和最小值1.索引    这个非常好理解,需要注意一点就是python中索引值可以是负值,代表倒着索引。    2.切片    切片实现的需...

2018-04-19 09:49:03 170

原创 C与指针

在C中,注释常用的方法是/* statements */,注释之间不能嵌套在1中的注释最好用来写评论,如果要注释掉代码,最好用#if指令#if 0 some statements#endif数组作为参数的时候传递的是数组首地址,也就是实参和形参共享一个地址,数组的下标量做参数时,情况和普通变量一样,这个时候形参和实参各自有各自的内存空间,互不干扰。C中只有4种基本类型,整型,浮点,指针,聚合...

2018-04-09 14:46:54 113

转载 gethostbyname和inet_addr

inet_addr用于将点分十进制字符串IP转换成网络字节序的IP,比如"61.135.169.125"失败则返回-1(INADDR_NONE)需要头文件arpa/inet.h#include<arpa/inet.h>char*addr="61.135.169.125";unsigned long inaddr;inaddr=inet_addr(addr);if(inaddr=...

2018-03-29 22:34:18 730

原创 C的单向链表及基本操作

链表实现FIFO功能;push:结点压入链表pop:弹出最后一个被压入的结点printnode:打印整个链表freenode:释放制定的结点占据的内存freelist:释放整个链表getlen:获取链表长度reverse:链表翻转find:寻找指定的结点,没有返回NULL,有多个返回查找到的第一个结点insert:在指定位置插入一个结点PS:在链表的翻转以及排序问题上,利用find指定位置的结点,...

2018-03-29 17:08:45 143

转载 字符串和十六进制之间的转换

#include <stdio.h>#include <string.h>int strToHex(char *ch, char *hex);int hexToStr(char *hex, char *ch);int hexCharToValue(const char ch);char valueToHexCh(const int value);int mai...

2018-03-29 13:43:33 1104

原创 malloc和free

malloc和free的意义已经无需赘述,基本用法就是申请和释放内存char*ptr=NULL;ptr=(char*)malloc(1024*sizeof(char));/* do something with ptr*/free(ptr);        然而在实际使用过程中,直接这样裸用malloc和free风险很大,主要风险是用ptr来接收malloc返回的地址的时候ptr释...

2018-03-28 13:51:45 160

转载 linux多线程API

1. pthread_t:线程ID    实际上是一个unsinged long int 类型,用来表示线程id2. pthread_attr_t:线程属性    包括scope属性、detach属性、堆栈地址、堆栈大小、优先级。在pthread_create中,把第二个参数设置为NULL的话,将采用默认的属性配置。3. pthread_create():创建一个线程        原型 int ...

2018-03-22 13:35:35 295

转载 shell常用的几个命令

1. ls 类似dos下的dir,展示当前目录下的文件夹      ls -a 显示隐藏文件      ls -l 显示详细信息2.cd:用于切换目录      cd 后面不带任何参数,回用户的home目录        cd -:回退到切换前的目录        cd aa 进入aa目录        cd .. 进入当前目录的上一级目录3.mkdir rmdir 创建目录和删除目录 rmdir...

2018-03-21 17:54:05 183

转载 有限状态机

mark

2018-03-21 16:21:27 110

转载 linux锁操作

mark

2018-03-21 16:20:39 162

转载 linux 流读写

1.fopen    原型 FILE* fopen(const char* filename,const char *mode),其中filename是文件名,mode表示打开状态,其取值如下:    "r":以只读方式打开文件    “w”:以只写方式打开文件    "a":追加方式打开文件    "r+":读写方式打开,无文件则出错   "w+":读写方式打开,无文件则生成新文件    返回值...

2018-03-21 16:20:19 234

转载 linux目录操作

mark

2018-03-21 16:19:53 109

转载 linux线程操作

mark

2018-03-21 16:19:17 91

转载 C标准的头文件

C标准的头文件有多少个?87年 ANSI公布的 ANSI C标准有15个,90年 ISO因为接受了ANSI的标准,所以公布的 ISO C 也是15个95年 ISO增加3个头文件  18个99年 ISO增加6个头文件 24个11年 ISO增加5个头文件 29个实际上C的标准头文件到底有多少,是看编译器的,编译器支持标准ANSI C,那就是15个,如果支持C99,就是24个,支持C11,就是29个。1...

2018-03-21 10:43:40 1929

转载 static,extern& inline

1.inline 关键字    这个关键字是为了告诉编译器,某个函数需要被设置成内联函数。所谓内联函数,就是把函数体内嵌到每一处调用的地方,而不是在每次调用的时候讲函数压入栈中,开展一次完整的函数调用过程。内联函数要解决的问题就是某些频繁调用的函数会增大开销这个问题。然而现在的编译器已经不用用户去告诉它哪些函数需要设置内联,编译器甚至会忽略掉inline,而是根据自己的一套规则确定是否有函数需要设...

2018-03-20 10:11:17 188

转载 使用POSIX开发的优缺点

优点:可移植性,这也是使用posix最大的好处方便测试,window,Mac OS,linux都支持posix,可以直接在PC端进行测试资料丰富缺点:牺牲一点效率

2018-03-20 09:17:14 412

转载 POSIX和C99标准头文件

ISO C标准定义的头文件(24项)<assert.h>       ----------------------   验证程序断言<complex.h>    ----------------------   支持复数算术运算<ctype.h>        ----------------------   字符类型<errno.h>       ...

2018-03-19 17:53:41 936

原创 time_t

time_t实际上是一个long int,传说可以保存1970到现在的秒数,最多可以到2038年。在POSIX和C自己的标准库中,都有对time_t的定义C标准库定义time_t的定义在time.h中;linux对它的定义在sys/time.h中;也就是,如果代码平台无关,就应该用time.h头文件,如果要和平台相关,就要用sys/time.h...

2018-03-19 17:53:06 510

翻译 extern

内容摘自stack overflow1. 定义        extern可用在变量和函数前,用以表示变量或者函数定义在别的文件中(或者本文件其它位置),提示编译器遇到该变量或者函数的时候去别的文件中去寻找定义2. 使用方法    最合适的声明和定义一个全局变量的方法是在一个头文件(file3.h)中声明一个extern变量,某一个源文件引用头文件并定义这个变量,其他的源文件就可以直接引用这个变量...

2018-03-19 13:39:54 86

转载 C中的堆(heap)和栈(stack)

堆是分配给应用程序的,会随着进程退出被回收再分配;栈是分配给线程的,会随着线程退出被回收再分配stack的大小是在线程启动的时候可以指定大小的,heap的大小理论上要看系统的配置的大小,理论上可以达到系统的极值。heap中的内容是线程安全的程序启动的时候,会被分配一个heap,heap初始分配的时候会给根据OS区别,而给不一样的大小,但是会随着程序的需求增加而增大,stack则要在使用线程时候自己...

2018-03-19 13:39:19 184

转载 typedef struct和struct的几种情况

在C中,定义一个结构,可以有一下几种1.先定义结构体,再定义变量,这种方式不能省略struct关键字struct student{ int age; char* name;};struct student st1,st2;2.定义结构体的同时定义变量struct student{ int age; char*name;}st1,st2;3.直接定义变量,这种定义方式下,不能后...

2018-03-19 13:38:37 360

原创 assert断言

1.<assert.h>是C的标准库中的头文件,唯一的作用是提供了一个assert定义,assert定义可以用来进行真伪判断,一旦某个assert判定非真,会输出错误信息并关闭程序#include<assert.h>#include<stdio.h>void main(){ int i=1; assert(i>9); printf(...

2018-03-14 10:11:31 116

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除