随笔分类 -  C

摘要:dsa typedef unsigned long int NUM; typedef unsigned short int Data; //为已经存在的类型起一个别名 //1.定义一个变量 unsigned long int NUM //2.加typedef unsigned long int NU 阅读全文
posted @ 2016-06-14 06:36 芬乐 阅读(278) 评论(0) 推荐(0)
摘要:1. exit()函数会结束并退出程序。 1. abosrt()函数会触发程序的异常,然后程序后面的语句就不会执行了。用来提示错误。会出现: 阅读全文
posted @ 2016-06-14 06:19 芬乐 阅读(1121) 评论(0) 推荐(0)
摘要:cpu的缓存就是寄存器 计算机cpu分为运算器和控制器。 数据只有被载入运算器的寄存器才可以进行计算。如果一个变量在程序总频繁使用,系统必须多次访问内存中的该单元,影响程序的执行效率,狼覅时间。 操作内存需要用到控制器,控制器扫描的数值的地址,将数值赋给寄存器变量(eax,ebx等)。 寄存器在CP 阅读全文
posted @ 2016-06-13 06:56 芬乐 阅读(274) 评论(0) 推荐(0)
摘要:2. 进制间的转换 2. 还需要记住的是字符串结束标志:整数 0 或者字符 \0都行,十进制整数所代表的字符就是 \0. 阅读全文
posted @ 2016-06-13 06:29 芬乐 阅读(329) 评论(0) 推荐(0)
摘要:1.先在黑窗口写编写一个能实现需求的代码(当然你也可以直接去MFC里去写)。 2.将编写好的程序头文件加到MFCtoolDlg.cpp文件的前边 像这样: 3.在MFS的头文件stdafx.h中加入取消安全机制(注意:加在了第二行,而不是第一行) 4.将编写的函数除了主函数外都放到MFCtoolDl 阅读全文
posted @ 2016-06-12 06:57 芬乐 阅读(266) 评论(0) 推荐(0)
摘要:1.首先说一下函数的副本机制 形式参数会开辟内存,新建一个变量,容纳传递过来的实际参数的值。 看一段简单的代码 1 # include<stdio.h> 2 # include<stdlib.h> 3 4 int add(int n, int m) 5 { 6 int z = n + m; 7 re 阅读全文
posted @ 2016-06-11 05:59 芬乐 阅读(461) 评论(0) 推荐(0)
摘要:1. 运算符 & 按位与 | 按位或 ∧ 按位异或 ∽ 取反 << 左移 >> 右移 说明: 1>位运算符中除∽以外,均为二目(元)运算符,即要求两侧各有一个运算了量。 2>运算量只能是整形或字符型的数据,不能为实型数据。 “按位与”运算符(&) 规定如下: 0&0=0 0&1=0 1&0=0 1& 阅读全文
posted @ 2016-06-10 06:54 芬乐 阅读(1190) 评论(0) 推荐(0)
摘要:***volatile在多线程用的最多。*** 1.可写内存是可以直接赋值,寄存器赋值,没有意义,cpu寄存器的刷新速度是很快的,赋值也许马上就被覆盖了,只有在内存中才能长久保存。 2.debug模式下,会执行到条件不满足时,而release模式下(加上volatile关键字就不会了),就秒出,de 阅读全文
posted @ 2016-06-10 06:13 芬乐 阅读(227) 评论(0) 推荐(0)
摘要:1.红字处代码不理解,反正调用红字函数,效果是在桌面的最顶层显示了“ i love you” 2.下面是自己的理解 阅读全文
posted @ 2016-06-09 07:05 芬乐 阅读(289) 评论(0) 推荐(0)
摘要:#include#include #include #include void main(){ //HWND win = FindWindowA("TXGuiFoundation", "QQ");//获取窗口,TXGuiFoundation是通过spy软件获取的类名。 HWND win = FindWindowA("StandardFrame", "阿里旺旺");//获取窗口 ... 阅读全文
posted @ 2016-06-07 06:28 芬乐 阅读(404) 评论(0) 推荐(0)
摘要:1.线程 线程池是一个树状结构。 多线程解决并发问题。 一个线程内部的执行顺序是线性的。而线程之间是乱序的。 若要创建一个多线程程序,它的参数必须是空指针类型。 变色龙程序: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include <st 阅读全文
posted @ 2016-06-03 22:11 芬乐 阅读(690) 评论(0) 推荐(0)
摘要:一、dll动态链接库 1.dll 没有 main 函数 2.不能直接执行,可以注入exe中让它间接执行。只有把它编译到应用程序中才可以。 3.编写dll 函数前加上 _declspec(dllexport) void go(){} 二、lib(静态链接库) 若要使用 lib,则需要将他放在源文件那个 阅读全文
posted @ 2016-06-03 20:39 芬乐 阅读(253) 评论(0) 推荐(0)
摘要:只有32到126字符是可见的(能显示出来),这些字符往往1起到控制符的作用。 打印可见字符: for(char ch = 32; ch < 127; ch ++) { putchar(ch); } 阅读全文
posted @ 2016-05-29 14:13 芬乐 阅读(166) 评论(0) 推荐(0)
摘要:一、auto' 1.只要在函数内部定义变量,默认是auto int num 等价于 auto int num = 10; 2.C语言中的auto关键字就是自动分配自动释放 二、bool类型 1.头文件stdbool.h _Bool b = true; _Bool b1 = 10; 表示true,非0 阅读全文
posted @ 2016-05-29 13:11 芬乐 阅读(221) 评论(0) 推荐(0)
摘要:1.宽字符是为了解决国际化,英文软件写好后,要发行到不同的国家,这时就需要使用宽字符,宽字符能把汉字当成一个字符。 2.字符集 <1>多字节字符集 (窄字符) <2>Unicode字符集(用来解决国际化)(宽字符) 3.MessageBox MessageBox引用了windows.h文件。 宽字符 阅读全文
posted @ 2016-05-29 11:06 芬乐 阅读(753) 评论(0) 推荐(0)
摘要:1.递归的死循环通过栈是向栈容量有限, 栈默认大小是1Mb,编译时,可以编译个100MB,栈大一点,程序的稳定性大大增强,程序的体积变大,而且运行速度也会变慢。 2.递归必须要有入口和出口 写一个1加到100的函数 阅读全文
posted @ 2016-05-28 07:34 芬乐 阅读(184) 评论(0) 推荐(0)
摘要:输出的结果是1,4,2 阅读全文
posted @ 2016-05-25 11:55 芬乐 阅读(144) 评论(0) 推荐(0)
摘要:1.赋值号会自动转换类型: int a= 2.1; printf(‘‘%d’’,a); //输出结果是2 2.printf不会转换类型,而是直接将内存中表示的补码数拿出来,最明显的就是有符号类型和无符号类型的数的打印。 阅读全文
posted @ 2016-05-25 09:24 芬乐 阅读(342) 评论(0) 推荐(0)
摘要:原码:如果机器字长为n,那么一个数的原码就是用一个n位的二进制数,其中最高位为符号位:正数为0,负数为1。剩下的n-1位表示该数的绝对值。 (机器字长:是指计算机进行一次整数运算所能处理的二进制数据的位数,机器字长是32位,主存储器字长可以是32位,也可以是16位) 反码:对于正数,反码与原码相同; 阅读全文
posted @ 2016-05-24 23:38 芬乐 阅读(731) 评论(0) 推荐(0)
摘要:c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。 编译过程 编译过程又可以分成两个阶段:编译和会汇编。 编译 编译是读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,源文件的编译过程包含两个主要阶段: 第一个阶段是预处理阶段,在正 阅读全文
posted @ 2016-05-23 07:05 芬乐 阅读(1597) 评论(0) 推荐(0)