摘要: 宏函数看起来像函数,却不会带来函数调用的额外开销,但是宏函数也有其弊端,例如: #define CALL_MAX_FUN(a, b) fun((a) > (b) ? (a) : (b)) int a = 5, b=0; CALL_MAX_FUN(++a, b); //a自增2次 CALL_MAX_F 阅读全文
posted @ 2019-10-13 22:14 落影无痕 阅读(872) 评论(0) 推荐(0) 编辑
摘要: 1、宏定义 #define DEMO 10 这种方式定义的常量,在编译时,编译器看不到DEMO这个名称,在预处理的时候都被替换了。于是DEMO没有进入符号表内,这样,在运用此常量的地方出现编译错误时,错误信息不会提到DEMO,会导致难以定位错误信息。另外在进行调试时,也看不到DEMO名称。 2、co 阅读全文
posted @ 2019-10-13 21:51 落影无痕 阅读(4360) 评论(0) 推荐(0) 编辑
摘要: 1、编译单元 在编译器编译代码时,只会去编译.cpp文件,而所有的头文件会在预编译时全部拷贝到.cpp中去,之后编译.cpp文件,所以每个.cpp文件是一个编译单元。 2、声明 声明是将一个名称引入到一个作用域中来,并且,除了类中的成员函数和成员变量的外,在同一个作用域是可以重复声明的。 3、定义 阅读全文
posted @ 2019-10-13 21:22 落影无痕 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 系统: (1)uname -a //查看内核、操作系统、CPU信息 (2)head -n 1 /etc/issue //查看操作系统版本 (3)cat /proc/cpuinfo //查看CPU信息 (4)cat /proc/version //查看操作系统版本 (5)hostname //查看计算 阅读全文
posted @ 2019-08-13 23:05 落影无痕 阅读(110) 评论(0) 推荐(0) 编辑
摘要: (1)fdisk /dev/sdb进行分区 (2)选择n表示添加一个分区,选择d表示删除一个分区。可通过m获取帮助信息 (3)选择p表示主分区,然后输入分区大小 (4)分区完成后,可通过fdisk -l查看分区情况 (5)mkfs.etx4 /dev/sdb1 格式化(创建文件系统) (6)挂载 ( 阅读全文
posted @ 2019-04-12 22:31 落影无痕 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 1、函数原型 该函数获取当前线程的调用堆栈,获取的信息将会被存放在buffer中,它是一个指针数组,参数size用来指定buffer中可以保存多少个void*元素。函数的返回值是实际返回的void*元素个数。buffer中的void*元素实际是从堆栈中获取的返回地址。 该函数将backtrace函数 阅读全文
posted @ 2019-04-10 22:00 落影无痕 阅读(11481) 评论(0) 推荐(5) 编辑
摘要: fopen, fwrite, fread详解 1、头文件 #include <stdio.h> 2、fopen (1) 函数原型 FILE *fopen(char *filename, *type) 函数用来打开一个文件 (2) 参数解析 filename,文件名 type,打开方式 字符及其含义: 阅读全文
posted @ 2019-04-02 22:43 落影无痕 阅读(4484) 评论(0) 推荐(1) 编辑
摘要: exit函数特点: 1、exit函数用于结束正在运行的整个程序,它将参数返回给OS,把控制权交给操作系统。 2、exit是系统调用级别,它表示一个进程的结束。 3、在main函数结束时,会隐式地调用exit函数,所以一般程序执行到main()结尾时,则结束主进程。exit将删除进程使用的内存空间,同 阅读全文
posted @ 2019-03-28 23:43 落影无痕 阅读(3248) 评论(0) 推荐(0) 编辑
摘要: 示例程序: 执行结果: 程序消耗完内存会被killed掉 阅读全文
posted @ 2019-03-28 23:00 落影无痕 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 1 定义 (1)线程安全:多个线程同时运行一段代码,不会造成资源的冲突,不会产生错误的结果,那么这段代码是线程安全的。 (2)可重入:多个执行流反复执行一段代码,其结果不会发生改变。 2 条件 (1)常见线程安全满足的条件: 只读全局变量或静态变量 保护共享资源 调用线程安全的函数 (2)常见可重入 阅读全文
posted @ 2019-03-28 22:44 落影无痕 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 1、动态库文件的创建 (1)编写源文件 (2)编译生成动态库 g++ -fPIC -shared -o libfile_operation.so file_operation.cpp 此编译过程分为两步,等同于下面的两个命令: g++ -c -fPIC file_operation.cpp -fPI 阅读全文
posted @ 2019-03-28 22:40 落影无痕 阅读(1152) 评论(0) 推荐(0) 编辑
摘要: 1、静态库的创建(1)编写源文件(2)g++ -c xxx.cpp编译生成 目标文件(3)使用ar命令将目标文件归档生成静态库 ar -crv libfile_operation.a file_operation.o 选项说明... 阅读全文
posted @ 2019-03-17 21:03 落影无痕 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 1、tail命令 命令的主要用途是将指定的文件的最后部分输出到终端,如果该文件有更新,tail会自己主动刷新。2、tail语法 tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -... 阅读全文
posted @ 2018-12-11 22:39 落影无痕 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 1、hosts文件作用hosts文件作用就是将一些常用的域名与其IP地址对应起来,建立一个关联的数据文件,当用户在浏览器中输入域名之后,系统会首先找到hosts文件,从中寻找匹配的域名,如果找到了,就直接访问域名对应的IP地址,如果没有找到,系统会将域名信息发送给DN... 阅读全文
posted @ 2018-12-11 22:37 落影无痕 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 1、dns简介dns为域名解析系统,当本地浏览器输入域名访问网站时,如果本地host中没有配置域名与IP的对应关系,那么域名信息将会被发送到dns服务器上,由dns服务器将域名解析为IP(过程较为复杂,不做赘述),然后将IP信息返回给本地浏览器,浏览器就会根据IP访问... 阅读全文
posted @ 2018-12-11 22:35 落影无痕 阅读(543) 评论(0) 推荐(0) 编辑
摘要: 本文介绍整数编码,主要讨论无符号整数和有符号整数的编码不同所带来的一些理解上的问题。无符号整数编码很容易理解,因其没有符号位,在二进制无符号整数转为十进制数时,每一位上的数字(0或1)乘以该为的权值2w-1(w从1开始),然后相加即可。对于有符号整数,最高位为符号位,符号位的权值决定了正负。有符号整 阅读全文
posted @ 2018-07-11 23:43 落影无痕 阅读(705) 评论(0) 推荐(0) 编辑
摘要: 1、POSIX信号量#includeint sem_init(sem_t* sem, int pshared, unsigned int value);int sem_destroy(sem_t* sem);int sem_wait(sem_t* sem);sem_t... 阅读全文
posted @ 2018-05-20 23:17 落影无痕 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 1、线程创建和结束#includeint pthread_create(pthread_t* thread, const pthread_attr_t* attr, void* (*start_routine)(void*), void* arg)void pthre... 阅读全文
posted @ 2018-05-20 12:19 落影无痕 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 1、信号量介绍 多个进程同时访问系统上的同一资源时,就需要考虑同步问题,以确保在任一时刻只有一个进程对资源独占式访问。通常,我们称访问共享资源的代码为临界区,进程同步,也就是确保同一时刻,只有一个进程进入临界区。 信号量是实现进程同步的一种方式,信号量只能... 阅读全文
posted @ 2018-05-18 15:05 落影无痕 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 1、进程间通信 每个进程有独立的用户地址空间,所以一个进程是看不到另一个进程中的数据包括全局变量。进程间通信是需要通过内核来进行的,内核中开辟一块缓存,不同的进程将数据写到这里或从这里读取,从而实现不同进程之间的通信,内核提供的这种机制称为进程间通信。进程间通信... 阅读全文
posted @ 2018-05-17 17:19 落影无痕 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 1、fork函数#include#includepid_t fork(void);函数每次调用都返回两次,在父进程中返回子进程ID,在子进程中返回0。调用失败是返回-1,并置errno。fork函数复制当前进程,在内核进程表中创建一个新的进程表项,新进程很多属性与原进... 阅读全文
posted @ 2018-05-17 11:37 落影无痕 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 1、poll函数#includeint poll(struct pollfd* fds, nfds_t ndfs, int timeout) poll函数在一定的时间内轮询一定数量的文件描述符,检测是否有文件描述符就绪。参数解析如下:fds为一个pollfd结构... 阅读全文
posted @ 2018-05-08 19:21 落影无痕 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 1、select函数 此函数用于在一段时间内,监听用户感兴趣的文件描述符上的可读、可写和异常等事件。#includeint select(int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds... 阅读全文
posted @ 2018-05-06 23:31 落影无痕 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 1、内核事件表 epoll是Linux特有的I/O复用函数。epoll把用户关心的文件描述上的事件放在内核里的一个事件表中,并用一个额外的文件描述符来标识该内核事件表。这个额外文件描述符使用函数epoll_create函数来创建。#includeint epol... 阅读全文
posted @ 2018-05-06 19:29 落影无痕 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 1、atoi()函数#includeint atoi(const char *str) 将字符串转化为整型数int val;char str[20]; strcpy(str, "98993489");val = atoi(str); //此时val就是整型数... 阅读全文
posted @ 2018-05-06 12:42 落影无痕 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 基于class实现一个存储string类型的Stack头文件://stack.h#include#includeclass Stack{ public: bool push(const string &str); bool pop(string &str); b... 阅读全文
posted @ 2018-04-29 14:55 落影无痕 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 一、map1、map被定义为一对(pair即key和value)数值。 key值在map内最多只有一份。 假如需要对一篇文章中的单词计数,那么就可以建立一个map,string类型的key,int型的value,表示某个单词出现的次数。 #incl... 阅读全文
posted @ 2018-04-29 12:29 落影无痕 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 1、指针的算术运算 对于一个存储int数据的vector,我们要查找某值是否存在于其中,采用下标操作的做法如下: int* find(const vector &vec, int value) { for(int i = 0; i elemType* find(c... 阅读全文
posted @ 2018-04-25 23:15 落影无痕 阅读(563) 评论(0) 推荐(0) 编辑
摘要: vector和list为STL中的顺序容器,顺序容器会依次维护第一个到最后一个元素,在顺序容器上,我们主要的操作就是迭代。头文件: #include #include1、vector特点: 连续存储结构 随机访问和尾端插入\删除操作效率高 动态的内存空... 阅读全文
posted @ 2018-04-25 23:11 落影无痕 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 一、连接数据库格式:mysql -h主机地址 -u用户名 -p用户密码1.1.连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前... 阅读全文
posted @ 2017-10-17 23:28 落影无痕 阅读(91) 评论(0) 推荐(0) 编辑
摘要: import javax.swing.JFrame;import javax.swing.JPanel;public class DemoFrame extends JFrame{ public DemoFrame(DemoPanel panel) { thi... 阅读全文
posted @ 2017-10-17 22:17 落影无痕 阅读(774) 评论(0) 推荐(0) 编辑
摘要: 初学Python,可以选择python原始的IDE,但原始的IDE在使用过程中需要自己安装各种包,个人觉得初学者不需要将时间花在这些上面,而是应该直接学习python程序,这些比较杂的事情可以在以后的学习过程中慢慢补充。所以这里推荐使用anaconda,安装完anaconda,就相当于安装了Pyth 阅读全文
posted @ 2017-07-24 21:27 落影无痕 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 1. struct hostent结构体 h_name 地址的正式名称。 h_aliases 预备名称(别名)的指针。 h_addrtype 地址类型; 通常是AF_INET。 h_length 地址的比特长度。 h_addr_list 主机网络地址指针。网络字节顺序。 h_addr h_addr_ 阅读全文
posted @ 2017-06-28 23:01 落影无痕 阅读(1100) 评论(0) 推荐(0) 编辑
摘要: 题目描述:定义一个二维数组N*M(其中2 2 #include 3 using namespace std; 4 5 struct point 6 { 7 int x; 8 int y; 9 };10 11 static int a[100][100];12 static int ... 阅读全文
posted @ 2015-08-14 15:25 落影无痕 阅读(686) 评论(0) 推荐(0) 编辑
摘要: 题目描述zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。规定,所有的边都只能画一次,不能重复画。输入第一行只有一个正整数N(N 2 #include 3 using namespace std; 4 5 int a[100][100]=... 阅读全文
posted @ 2015-08-14 11:11 落影无痕 阅读(1299) 评论(0) 推荐(0) 编辑
摘要: 代码:(控制台打印不了92种情况,只打印前10种) 1 #include 2 #include 3 #include 4 #define ok 1 5 #define error 0 6 using namespace std; 7 8 9 int a[9][9]={0};10 int n... 阅读全文
posted @ 2015-08-13 20:11 落影无痕 阅读(1844) 评论(0) 推荐(0) 编辑
摘要: 1,2,3,4,5列火车进站出站,有哪些组合方式?对于进出站的方式与数据结构中的栈相同。如果有n 列火车通过调度站,请设计一个算法,输出所有可能的调度结果。 解题思路:栈具有先进后出、后进先出的特点,因此,任何一个调度结果应该是1 ,2 ,3 ,4全排列中的一个元素... 阅读全文
posted @ 2015-07-02 16:22 落影无痕 阅读(586) 评论(0) 推荐(0) 编辑
摘要: Windows程序内部运行机制2007-10-21 19:52 1010人阅读 评论(0) 收藏 举报windowsvc++applicationcallbackwinapistructure Windows程序内部运行机制 先加个链接在这里:http://w... 阅读全文
posted @ 2015-06-25 09:26 落影无痕 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 砝码称重问题:设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其质量#includeint sum; ///表示输入的砝码的总质量int ma[6]; ///六种砝码的个数int weight[6]={1,2,3,5,10,20}; ///六种砝码的重量char dp[1001]... 阅读全文
posted @ 2015-06-19 17:17 落影无痕 阅读(2116) 评论(0) 推荐(0) 编辑
摘要: C++常用库函数 1、常用数学函数 头文件 #include 或者 #include 函数原型功能返回值int abs(int x)求整数x的绝对值绝对值double acos(double x)计算arcos(x)的值计算结果double asin(dou... 阅读全文
posted @ 2015-06-19 10:38 落影无痕 阅读(680) 评论(0) 推荐(0) 编辑