摘要:
位运算加速技巧1.如果乘上一个2的倍数数值,可以改用左移运算(Left Shift) 加速 300%x = x * 2;x = x * 64;//改为:x = x << 1; // 2 = 21x = x << 6; // 64 = 262.如果除上一个 2 的倍数数值,可以改用右移运算加速 350%x = x / 2;x = x / 64;//改为:x = x >> 1;// 2 = 21x = x >> 6;// 64 = 263.数值转整数加速 10%x = int(1.232)//改为:x = 1.232 >> 0;4.交换两 阅读全文
摘要:
Linux学习之正则表达式正则表达式字符串表示方式一朝不同的严谨程度分为基础正则表达式和扩展正则表达式,下面我们来先看看基础正则表达式:经常用到的一些符号[;alnum:] 表示0-9 a-z A-Z[:alpha:] 表示a-z A-Z[:lower:] 表示a-z[:upper:] 表示A-Z[:digit:] 表示0-9 www.2cto.com 在学习正则表达式之前有必要好好了解grep的使用grep [-A] [-B] [--color=auto] '查找字符串' filenameA 后面可以接数字,为after的意思,除了列出该行外,后续的n行业列出来B 后面可以加 阅读全文
摘要:
范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩![root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。# 如果加 z 参数,则以 .tar.gz 或 .t 阅读全文
摘要:
对指针的应用是C语言编程的精髓所在,而回调函数就是C语言里面对函数指针的高级应用。简而言之,回调函数是一个通过函数指针调用的函数。如果你把函数指针(函数的入口地址)传递给另一个函数,当这个函数指针被用来调用它所指向的函数时,我们就说这个函数是回调函数。为什么要使用回调函数呢?我们先看一个小例子: 1 Node * Search_List (Node * node, const int value) 2 { 3 while (node != NULL) 4 { 5 ... 阅读全文
摘要:
枚举,一种构造类型,用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。枚举的目的就是提高程序的可读性;枚举的特殊属性:初始化一个枚举类型:enum day {Sun=0,Mon,Tue,Wed,Thu,Fri,Sat};定义Sun为0,后面的Mon Tue Wed 就为1 2 3enum day {Sun,Mon=10,Tue,Wed,Thu,Fri,Sat};此时Sun为0 Mon=10 Tue=11 Wed=12······· 1 #include<stdio.h> 2 #incl 阅读全文
摘要:
主要思想,main函数开始的时候从文件中读取数据,然后把数据做成一个链表存放到内存。然后开始通过菜单选项进行想要的操作(增加信息,修改信息,删除信息·····)。最后要推出程序的时候删除存放数据的文件,然后在创建一个文件把操作后的数据依次写入文件中。(练手程序,没什么技术含量!) 1 #include<stdio.h> 2 #include<stdlib.h> 3 4 struct stu 5 { 6 int num; 7 char name[20]; 8 }; 9 typedef struct stul 10 { 11 阅读全文
摘要:
main()函数参数的一般形式: int main(int argc, char *argv[])int argc用来表示参数的数量,argv[]数组是用来存放参数的值;但是在linux下的gcc编译中传参的时候会出现一点问题,直接上代码好了:1 #include<stdio.h>2 int main(int argc, char *argv[])3 {4 printf("the first argc is %s\n",argv[0]);5 printf("the second argc is %s\n",argv[1]);6 printf( 阅读全文
摘要:
学过C的都知道gets()函数是用来接收字符串的一个函数,以前用的时候感觉挺好使的,但是今天碰到了一个问题。 本人写的程序如下:1 #include <stdio.h>2 int main(void)3 {4 char name[10];5 gets(name);6 puts(name);7 } 这个程序最简单不过了,就是一个字符串输出输入的问题,但是使用linux下的gcc编译老是不能通过,提示的问题是: “the 'gets' function is dangerous and shout not be used.” 让我很纠结,为什么这个函数不让使用,... 阅读全文
摘要:
相信只要是程序猿都会知道rand()函数是用来取随机数的一个库函数,但是它出的结果真的是一组随机数吗?我们来看看这段代码运行的结果: 1 #include<stdio.h> 2 #include<stdlib.h> 3 int main(void) 4 { 5 int j; 6 for(j=0;j<5;j++) 7 { 8 printf("rand():%d\n",rand()); 9 } 10 }linux下gcc每次运行结果如下:windows vc6.0每次运行结果如下:(本人windows系统为64位机)(由于编译器的不同,可能... 阅读全文
摘要:
大家都知道C中的strcpy()函数是用来复制字符串的库函数。先附上代码看看strcpy()函数的功能: 1 #include<stdio.h> 2 #include<string.h> 3 #define MAX 20 4 5 int main(void) 6 { 7 char a[MAX]="abc"; 8 char b[MAX]="abcdefghi"; 9 strcpy(a,b);10 puts(a);11 puts(b);12 } 很明显,结果如下: 此函数中还有两个高级属性—— ①:它是char *类型,它返回的是第一 阅读全文