C和C++
enlyhua
这个作者很懒,什么都没留下…
展开
-
2.make file
1.先创建一个 Makefile 文件2.执行 make 命令原创 2016-11-13 12:34:19 · 292 阅读 · 0 评论 -
14.动态内存分配
当你声明数组的时候,你必须用一个编译时常量指定数组的长度。但是,通常数组的长度常常在运行的时候才能确定。这是由于它所需要的内存取决于输入的数据。malloc 和 freeC 函数库提供了两个函数: malloc 和 free ,分别用于执行动态内存分配和释放。这些函数维护一个可用的内存池。当一个程序另外需要一些内存时,就调用 malloc 函数,malloc 从内存池中提取一块合适的内存,并向转载 2017-03-13 00:29:05 · 300 阅读 · 0 评论 -
3. gdb 调试
gcc -g 源文件 -o 目标文件 // -g 产生可以调试的目标文件gdb main2.out // 开始调试程序l // 列出程序代码break 行数 // 打断点start // 开始调试 p 变量 // 查看变量当前值,等价于 print 变量n // 下一步s // 步入bt //查看函数堆栈转载 2016-11-19 23:46:26 · 382 阅读 · 0 评论 -
18.输入和输出函数
错误报告函数:void perror(char const *message) 终止执行:void exit(int status);流: 流IO总览 打开流 关闭流int fclose(FILE *f) ; // 成功返回0,失败返回 EOF字符IO 未格式化的行 IO 格式化的行 IO转载 2017-04-09 17:42:17 · 583 阅读 · 0 评论 -
19. 标准函数库
标准函数库转载 2017-04-10 23:31:53 · 409 阅读 · 0 评论 -
17.预处理
#define name stuff // 当有 name 出现,替换成 stuff #undef name // 移除一个宏定义 条件编译: 文件包含:转载 2017-04-02 22:28:54 · 200 阅读 · 0 评论 -
16. 函数指针
cdecl 可以在 c 声明和英语之间进行转换函数指针作为转换表和参数传递给另外一个函数。初始化:int f(int); // 函数指针初始化之前的原型声明很重要int (*pf)(int) = &f;//&可选,因为函数名会被编译器转换为指针调用:int ans;ans = f(25);ans = (*pf)(25);ans = pf(25)命令行参数处理命令行参数是指向指针的另一个用转载 2017-03-26 23:27:01 · 228 阅读 · 0 评论 -
20.经典抽象数据类型
1.堆栈后进先出(Last-In First-Out,LIFO).2.队列先进先出(First-In First-Out,FIFO) http://blog.csdn.net/fansongy/article/details/6798278/http://blog.csdn.net/pi9nc/article/details/13008511转载 2017-04-15 16:40:09 · 428 阅读 · 0 评论 -
21.运行时环境
一个函数分3个部分:函数序函数体函数跋转载 2017-04-15 22:10:51 · 327 阅读 · 0 评论 -
24. flock() 函数
https://zhuanlan.zhihu.com/p/25134841https://wenku.baidu.com/view/ab3421d06f1aff00bed51e34.htmlhttp://blog.csdn.net/tao546377318/article/details/53811584http://c.biancheng.net/cpp/html/234.htmlhttp://b转载 2017-09-04 00:35:31 · 237 阅读 · 0 评论 -
23. 生成 core dump
https://zhidao.baidu.com/question/1177203632333097379.html转载 2017-09-02 21:05:19 · 305 阅读 · 0 评论 -
15.结构和指针
链表(linked list):就一些包含数据的独立数据结构(通常称为节点)的集合。链表中的每个节点通过链或者指针连接在一起。程序通过指针访问节点。单链表单链表:每个节点包含指向链表下一个节点的指针。最后一个节点的指针字段为 null.typedef struct NODE{ struct NODE *link; int value;} Node;#include <stdlib转载 2017-03-19 22:41:47 · 246 阅读 · 0 评论 -
11. 数组
数组名:int a; // 变量 a 为标量int b[10]; // 当程序完成链接后,内存中数组的位置是固定的,所以数组名的值是一个指针常量下标引用:*(b+3) // b 的值是一个指向整型的指针,所有3这个值根据整型值的长度进行调整array[subscript]*(array + (subscript))int array[10];int *ap = array + 2;arra转载 2017-02-26 16:58:57 · 345 阅读 · 0 评论 -
1.Linux C
1. gcc 源文件1,源文件2,.. -o 目标文件名分开编译:gcc -c 源文件 -o 目标文件.o 2.函数返回值 如果 main 函数 返回 0,则代表成功3.main 函数参数 4.标准输入流,输出流,错误流 printf() 默认是对 fprintf()的封装scanf() 对 fscanf()封装标准输入流 0标志输出流 1标准错误流 2>> 追加原创 2016-11-12 14:12:29 · 321 阅读 · 0 评论 -
4. 内存管理
系统内核与程序代码分开,好处是,即使应用程序内存占满了内存,也不影响操作系统,所以还可以通过操作系统关闭应用程序。 数据段内存分配,地址从小到大栈的内存分配相反,最先调用的函数,内存地址最大转载 2016-11-20 02:03:02 · 439 阅读 · 0 评论 -
5. C编译过程
gcc -o a.i a.c -E // -E 表示只让GCC 生成预处理文件 gcc -c // -c 生成 机器码,用 objdump -d 查看转载 2016-11-25 23:48:00 · 306 阅读 · 0 评论 -
6. C 语言预处理
1. 预处理1.1 头文件的展开1.2 宏替换 //简单替换,不做类型检查 3.宏函数 可以定义与类型无关的 函数4, typedeftypedef int zhengshu;typedef int* p;p q=null;与 define 区别: 预处理时不会替换,语句结束要加分号,typedef 有作用域通常用在 自定义的变量类型起别名typedef unsigned lo转载 2016-11-26 00:32:52 · 298 阅读 · 0 评论 -
7.C 位运算
1.与运算 作用:1.迅速清0 // 全部置02.保留指定位 // 指定位 置 13.判断奇偶 // 和 1 进行与运算2.或运算 作用:1.设定数据的指定位 //指定位 置 03.异或运算 作用:1.定位翻转 // 置 12.数值交换 4.取反运算右结合,单目运算5.左移,右移运算 左移: a<<4 相当于乘2的n次方右移: a>>4 相当于除2的n次方转载 2016-11-26 13:27:15 · 446 阅读 · 0 评论 -
8.C与指针(1)
1.1.2 预处理指令#include <stdlib.h>预处理器用名叫 stdlib.h 的头文件内容替换 #include 指令语句,仿佛就是stdlib.h的内容被写到源文件那个位置。stdlib.h 定义了 EXIT_SUCCESS 和 EXIT_FAILURE#define MAX_COLS 20函数原型:void rearrange(char *output, char cons转载 2017-01-09 23:41:41 · 278 阅读 · 0 评论 -
12. 指针、句柄、引用的区别
http://blog.csdn.net/dizzthxl/article/details/9006679http://blog.csdn.net/dizzthxl/article/details/9006693http://www.sunistudio.com/cppfaq/references.html转载 2017-02-28 17:24:47 · 311 阅读 · 0 评论 -
9.语句和表达式
空语句 : 一个分号 ;表达式语句: x = y+3;y+3; //当这语句被执行,结果并不被保持因为没有使用赋值操作符副作用(side effect)a++; // 语句没被赋值,但是 a加1了,这就是副作用代码块:{ ...}if 语句 :if (expression) statementelse statementc语言不具备 布尔类型,用0表示假,转载 2017-01-19 00:09:48 · 737 阅读 · 0 评论 -
10.指针
未初始化和非法的指针:int *a;...*a = 12;如果变量是静态的,它会被初始化为0.如果是自动的,不会初始化。如果运气好,那么a的初始值会是一个非法地址。unix系统上会提示,段违例(segmentation violation)或者内存错误(memory fault)。它提示程序正在试图访问一个并未分配给程序的内存位置。更为严重的是,分配给了一个合法地址,接下来的那个位置的值转载 2017-01-21 16:28:24 · 225 阅读 · 0 评论 -
13.字符串,结构,联合
C 语言并没有显式的字符串数据类型,因为字符串以字符串常量的形式出现或者存储于字符数组中。字符串常量适合那些不会对它们进行修改的字符串。所有的字符串都必须存储于字符数组或者动态分配的内存中。字符串就是一串0个或多个字符,并且以一个位模式全是0的NUL字节结尾。字符串的长度不包括 nul 字节。头文件 string.h 包含了使用字符串函数结构数组可以通过下标访问,以为数组的元素长度相同。结构通转载 2017-03-05 18:31:13 · 316 阅读 · 0 评论 -
22.c语言各种输入输出与错误处理
1.errno 2.strerror(errno) 3.perror() 向标准错误输出信息:#include <stdio.h>int main (){ FILE *fp; fp = fopen("file.txt", "r"); if( fp == NULL ) { perror("Error: "); return(-1); } fc转载 2017-09-02 20:06:28 · 4094 阅读 · 0 评论