C/C++实践笔记 015敲一些小程序和小工具练习
1.汉诺塔
二维数组存储、显示
2.volatile 禁止编译器自动优化,每次读内存
debug调试模式
release商业发行模式,会自动优化
3.原码反码补码工具
4.进制转换工具
5.register寄存器变量
寄存器在CPU内部,运算速度非常快,内存的数据必须载入寄存器,才能计算
寄存器变量在CPU,没有内存地址
寄存器变量在CPU内部,速度快,
所以频繁使用的变量,需要放在寄存器可以提高速度
VC会自动优化,即时没有声明寄存器变量,VC也会自动优化
频繁使用的变量,会自动优化成寄存器变量
gcc,就不会自动优化,我们需要把频繁使用的变量声明为寄存器变量,提升运行速度
参数可以使寄存器变量
全局变量不可以声明为寄存器变量,全局变量占用寄存器还会影响程序运行的速度
静态变量不可以放在寄存器
C语言不能取寄存器变量的地址
C++与C语言不同,寄存器变量会在内存有一个副本,所以可以取地址,在这查看的地址是副本的地址
寄存器变量用于频繁使用的变量,提升代码速度
全局变量或静态变量不要放在寄存器,寄存器数量有限
6.dll调用
7.用位运算实现加法
int add(int a, int b) { int wei = 0; int jinwei = 0; do { wei = a^b; //处理位加法 jinwei = (a&b) << 1; //进位 a = wei; //没有进位的加法 b = jinwei; //进位 } while (b != 0); //反复执行一直到进位等于0 return a; }
8.求最小公倍数最大公约数
#include<stdlib.h> #include<stdio.h> int fun(int m, int n) { if (m%n == 0) { return n; //跳出 } else { return fun(n, m%n); //递归,辗转相除法 } } void main() { int a = 25; int b = 10; printf("%d,%d", fun(10, 25),25*10/fun(10,25) ); getchar(); }
9.猜数字以及进程终止异常
abort();提示错误
#define _CRT_SECURE_NO_WARNINGS #include<stdlib.h> #include<stdio.h> #include<time.h> void main() { int number; time_t ts; unsigned int data = time(&ts); //获取时间 srand(data); //设定随机数种子 number = rand() % 100 + 1; //1-100 int guess = 0; while (guess != number) { scanf("%d", &guess); if (guess < number) { puts("小了"); } else if(guess>number) { puts("大了"); } else { printf("小伙子猜对了\n"); break; } } system("pause"); }
10.typedef
为已有类型起一个别名
第一步:typedef unsigned long int NUM;
第二步:NUM新类型名

浙公网安备 33010602011771号