C语言 预处理
📅 2026/7/8 13:54:38
👁️ 次浏览
预处理头文件引入, “” 两者差距一个是本地库另一个是文件内宏简单的文本替换 一般是用大写用 \ 连接下一行和函数传参不同简单的文本替换预处理指令在编译之前就完成报错在用的一行不会是宏定义#if #endif 先执行if语句否则执行下面防止头文件重复引用#pragma once#ifndef _*H#define _*H…#endif联合和结构体不同关键字不同union struct结构体是每个成员单独占据内存段对齐补齐联合是所有成员同时用内存段使用联合和宏判断系统是小端存储还是大端#include stdio.h #include stdbool.h #define test(name) union\ {\ int n;\ unsigned char c;\ } name{1}; { } int main() { test(u); bool a (u.c1); printf(%s\n,a?小端大端) return 0; }枚举enum types{a,b}和bool 作用功能相同。用来存放相同逻辑的标志符for(int i2;isqrt(n);i)递归函数中调用自己本身递推循环函数调用后面无代码 山上有个老和尚故事#include stdio.h #include windows.h void ditui(int n) { Sleep(1000); printf(从前有一个老和尚\n); ditui(n); } int main() { ditui(1); // n随便取值不影响循环 // 如果对n进行次数限制等同于 for 循环 }案例1求阶乘#include stdio.h int dituix(int n) { if (n 1) return n * dituix(n - 1); else return 1; } int main() { #if 0 // 使用循环 int n, sum; printf(请输入阶乘数字%d\n, n); scanf(%d, n); for (int i 1; i n; i) { sum * i; } #else // 使用递推 int n; while(1) { printf(请输入阶乘数字); scanf(%d, n); dituix(n); printf(输入阶乘数字为%d 阶乘为%d\n, n, dituix(n)); } } #endif2:斐波那契void fbnq(int n) { if(n3) retun 1; else return fbnq(n-1)fbnq(n-2); }递归先出去再回来#include stdio.h #include windows.h void ditui(int n) { if(n5) { sleep(1000); printf(从前有一个老和尚\n); ditui(n1); printf(循环结束回来\n); } } int main() { ditui(1); //让刚开始 n 1 ,以此完成递归 }案列1汉诺塔: 将A上面的圈按大小放在C上1个圈 A-C2个圈 A-B,A-C,B-C,3个圈 A-C ,A-B,C-B,A-C,B-A,B-C,A-C思路 将最下面和上面的全部分为两部分看待#include stdio.h int cnt 0; void hannuo(int n); void hannuota(int n, char began, char temp, char end); int main() { int i; while(1) { printf(请输入搬运圈个数:); scanf(%d, i); hannuo(i); printf(搬运圈%d个需要%d次:\n,i,cnt); } return 0; } void hannuo(int n) { hannuota(n, A, B, C); } void hannuota(int n, char began, char temp, char end) { if (n 0) { hannuota(n-1, began, end, temp); //将上部分先放在C上,然后放在B printf(搬运顺序为%c -- %c\n,began, end); cnt; hannuota(n-1, temp, began, end);//将上部分从B放在A上,然后放在C } }栈与队列栈区栈结构管理的数据队列 先进后出后进先出函数传参队列 先进先出案例数组实现栈#include stdio.h #include stdlib.h #include string.h int* stack; int len; void initstack(); //初始化栈 void tral(); // 遍历一下 void enterstack(int data); // 入栈 void exitstack(); // 出栈 int main() { initstack(); for (int i 0; i 10; i) { enterstack(i); tral(); } for (int i 0; i 9; i) { exitstack(); tral(); } free(stack); } void initstack() { stack NULL; len 0; } void tral() { printf(stack[%d]:, len); for (int i 0; i len; i) { printf(%d, stack[i]); } printf(\n); } void enterstack(int data) { int* ptem malloc(sizeof(int)*(len1)); //开内存 if (stack) { memcpy(ptem, stack, sizeof(int) * len); //复制已有的 free(stack); // 释放 } stack ptem; stack[len] data; len; } void exitstack() { if (len 0) --len; }多文档编程全局变量在.h 中定义 导致引用头文件变量重复使用解决方案1在.c 中定义然后使用 extern 扩展到其他.c文件中static 限制变量被拓展2不用全局变量使用参数传递
释放数字空间:免费开源视频压缩工具如何帮你节省90%存储空间 【免费下载链接】compressO Convert any video/image into a tiny size. 100% free & open-source. Available for Mac, Windows & Linux. 项目地址: https://gitcode.com/gh_mirrors/co/compr…
📅 2026/7/8 13:54:38
【Matlab】无人机航向角精准估计仿真实现 一、引言 航向角作为无人机姿态解算的核心参数,直接决定无人机飞行朝向、航迹跟踪精度与自主作业安全性。无人机航向角是机体纵轴与地理正北方向的夹角,是姿态控制、路径规划、定点悬停、自主返航功能的核心基础参数。在低空复杂飞行…
📅 2026/7/8 13:54:38
干细胞基础研究的底层逻辑与方向梳理关于干细胞基础研究的现状,市面上多数解读停留在技术应用层面,真正决定领域发展走向的底层逻辑,是三个相互关联又各自独立的科研方向:多能性调控机制的深度解析、新型干细胞类型的系统性发现、…
📅 2026/7/8 13:54:38
openEuler ROS版本迁移:从ROS1 Noetic到ROS2 Humble的平滑升级指南 【免费下载链接】ros It provides ROS source for openEuler 项目地址: https://gitcode.com/openeuler/ros
前往项目官网免费下载:https://ar.openeuler.org/ar/
openEuler RO…
📅 2026/7/8 15:03:08
openstack-kolla-plugin核心功能解析:轻松实现OpenStack与iSulad适配 【免费下载链接】openstack-kolla-plugin Adaptable coding made by openstack-kolla for openEuler 项目地址: https://gitcode.com/openeuler/openstack-kolla-plugin
前往项目官网免费…
📅 2026/7/8 15:03:08
如何在Windows上实现AirPlay 2投屏:免费开源解决方案完整指南 【免费下载链接】airplay2-win Airplay2 for windows 项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win
你是否曾经羡慕苹果设备之间的无缝投屏体验,却苦于Windows电脑无法…
📅 2026/7/8 15:03:08
OpenSCOW快速上手指南:3个步骤掌握计算中心管理核心功能 【免费下载链接】OpenSCOW OpenSCOW is a platform that supports the operation and management of computing centers. 项目地址: https://gitcode.com/openeuler/OpenSCOW
前往项目官网免费下载&am…
📅 2026/7/8 15:03:08
TigerVNC国产化部署实战:ARM架构深度适配与信创环境性能优化指南 【免费下载链接】tigervnc High performance, multi-platform VNC client and server 项目地址: https://gitcode.com/gh_mirrors/ti/tigervnc
在信息技术应用创新(信创࿰…
📅 2026/7/8 15:03:08
epkg-autopkg输出文件详解:package.yaml、phase.sh和ePKG包的生成原理 【免费下载链接】epkg-autopkg an integrated tool to create epkg yaml for upstream projects in various language and build system 项目地址: https://gitcode.com/openeuler/epkg-autop…
📅 2026/7/8 15:01:07
Docker 彻底卸载指南:CentOS/Ubuntu 双系统 5 步清理残留文件当 Docker 环境出现版本冲突、安装失败或需要迁移时,常规的卸载命令往往无法彻底清理系统。残留的配置文件、依赖项和缓存文件可能导致新安装的 Docker 出现各种诡异问题。本文将提供一套完整…
📅 2026/7/8 0:00:10
SQL 数据分析性能优化实战:窗口函数 vs 子查询 vs 临时表 在数据分析工作中,SQL查询性能往往是决定工作效率的关键因素。面对复杂的业务场景,如何选择最优的查询方案?本文将深入对比窗口函数、子查询和临时表三种技术方案…
📅 2026/7/8 0:00:10
日期:2026-07-07> 本期聚焦近一日(2026-07-06 至 07-07)出台的金融与行业政策,按"背景—核心—影响—受益/风险"四维度解读。政策内容依据原始发布信息整理,解读仅供参考,不构成投资建议。一、…
📅 2026/7/8 0:00:10
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/8 14:10:54
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/8 14:10:54
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/8 11:28:59
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/8 14:10:54
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/8 14:10:54
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/8 14:10:54