C语言
白小狮
技术改变人生
展开
-
C语言指针
之前对指针一直认识不完全,不是不理解指针本身,而是不理解程序如何使用指针的整个过程,今天在这里做一个详细的介绍例如 int a= 5; 程序立即给变量a分配内存,假如是2000~2003这个地址段保存5这个值,那么问题来了变量a本身如何保存呢,其实变量a也是保存在内存当中的,准备的说应该是程序语言运行时候的栈中,那么如果要深究的话,程序也是通过字母a的地址找到a原创 2015-01-07 23:53:01 · 518 阅读 · 0 评论 -
使用位操作提高程序效率
实现高效的C语言编写的第三招——使用位操作。减少除法和取模的运算。在计算机程序中数据的位是可以操作的最小数据单位,理论上可以用”位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。举例如下:方法E int I,J; I = 257 / 8; J = 456 % 32;方法F int I,J; I = 2...转载 2018-06-29 13:25:20 · 974 阅读 · 2 评论 -
孤儿进程和僵尸进程详解
之前没有特别区分这两种概念,以为孤儿进程就是僵尸进程,但是其实是有差别的,下面我们从概念上来看孤儿进程:父进程先死了,子进程还在继续运行,这样的进程会里面被init(ppid=1)进程回收僵尸进程:子进程自己退出了,父进程没有调用wait或者waidpid函数清理子进程的状态,所以这个状态一直会在进程列表存在下面是我做的实验:1.孤儿进程代码实例:#include <stdio.h>#includ原创 2017-12-26 23:31:33 · 628 阅读 · 0 评论 -
bubble sort详解
冒泡排序本是大家都很熟悉的一种排序,教科书也到处都是,今天突然在维基百科中看到还有一种优化的 bubble sort算法,不得不感慨是温故知新啊数据结构 array 算法推演: 两种bubble的伪代码procedure bubbleSort( A : list of sortable items ) n = length(A) for i = 0 to n - 1原创 2017-12-23 13:12:39 · 6805 阅读 · 0 评论 -
线程池简单实现
//线程池的需求分析//1.初始化线程池的空间//2.每个线程处理函数其实都是轮询在处理队列//3.addWorkers其实就是在往队列里面放任务//4.线程池销毁就是把启动的几个线程干死就好了typedef struct _task { void *(*process) (void *arg); void *arg; struct _task *next;} ta原创 2017-09-22 12:25:21 · 428 阅读 · 0 评论 -
gcc笔记
下面是记录一些C的编译环境的种种 makefile文件 我需要怎么使用makefile呢,就是要知道怎么编译和链接各个文件夹下>>面的文件,然后按先后顺序链接起来,执行一个make命令就可以了 CPPFLAGS=” -Werror -Wno-unused-but-set-variable” || exit 1 Gcc总体选项列表 后原创 2016-01-24 21:42:22 · 508 阅读 · 0 评论 -
close_on_exec详解
下面是我看到的一片博客,转载过来的,给自己一个笔记. http://blog.csdn.net/justmeloo/article/details/40184039无论是fork还是system()出子进程,如果父进程里在open某个文件后(包括socket fd:特别是port在子进程里被占用)没有设置FD_CLOSEEXEC标志,就会引起各种不可预料的问题; 注意,这里文件描述符包括了普通文转载 2016-10-14 22:49:08 · 3390 阅读 · 0 评论 -
C语言连接mysql数据库实战
今天在看php内核源码看到mysql数据库连接这一块,就想自己用C语言连接一下mysql数据库。告诉自己永远别停留在想的阶段,一定需要多敲。 #include <stdlib.h>#include <stdio.h>#include "/usr/local/mysql/include/mysql/mysql.h"#mysql的接口函数都在mysql.h中有定义,所以很多接口函数可以使用in原创 2015-12-27 18:53:26 · 680 阅读 · 0 评论 -
C语言中二级指针的用处
//二级指针的总结//1.在函数内部改变指针的指向,从而使原来指针的值发生变化//2.在写外挂程序的时候会用到#include void change_pointer(double **pp){ //这个函数需要搞定一个什么样的事情呢,这个函数需要改变指针的指向 double num = 100; *pp = # }int main(){原创 2015-08-16 22:44:37 · 1986 阅读 · 0 评论 -
C语言函数理解
#include void test(int a){ printf("a=%p \n",&a);//a=0x7fff4481bd5c}void main(){ int a = 100; printf("%p \n",&a);//a=0x7fff4481bd7c test(a);}//函数的实参和形参地址是不一样的,所以形参是不能改变实参的值得原创 2015-08-13 23:52:50 · 512 阅读 · 0 评论 -
C的小算法集合
//我告诉自己,是时候好好弄一下C语言了,因为不懂C,真的就不懂底层的东西,所有的//都要在熟练运用C以后,这是非常重要的//什么是质数,只能被1和自身整除的数就是质数//1既不是质数也不是合数int is_zhi(int num)//1.判断基准{ if(num 1) return 0; //不是 else if(num ==2 || num ==3)原创 2015-08-14 23:55:04 · 517 阅读 · 0 评论 -
cmake笔记
手册地址cmake相关手册都在这里我们都知道,c语言生成可执行文件的过程是这样的预编译-&gt;编译-&gt;汇编-&gt;链接-&gt;可执行文件链接link_directories(${PROJECT_SOURCE_DIR}/lib) #添加动态连接库的路径target_link_libraries(project_name -lmxnet ) #添加libmxnet.so...原创 2019-03-03 23:06:31 · 204 阅读 · 0 评论