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新类型名
标签:
[精益求精]C/C++实践笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人