- 博客(9)
- 收藏
- 关注
原创 c语言中常用的预处理指令整理
本文介绍了C语言预处理阶段的三大指令:宏定义、条件编译和头文件包含。宏定义部分讲解了内置宏(FILE, _DATE_等)和自定义宏的使用技巧,包括定义常量、简化代码、参数字符串化(#)和标记粘贴(##)。条件编译介绍了#if、#ifdef等指令的用法。头文件包含部分解释了<>和""的区别,以及防止重复包含的两种方法:#ifndef保护和#pragma once指令。文章通过示例代码展示了这些预处理指令的实际应用,并强调了合理使用预处理指令的重要性。
2026-03-01 20:45:50
291
原创 c语言的翻译与执行
本文介绍了C语言从源代码到可执行程序的完整翻译过程。主要分为编译和执行两大阶段:编译过程包括预处理(.i文件生成)、编译(转为汇编代码)和汇编(生成二进制指令);链接阶段则合并符号表和段表。文章解答了常见问题,如错误类型与编译阶段的对应关系、main函数返回值含义等,并比较了#include与extern的区别。最后列举了主流编译器(GCC、Clang、MSVC)及其特点,指出配置环境实质上是设置编译器和链接器的过程。
2026-03-01 20:05:37
767
原创 C语言文件操作:给数据安个家,让程序拥有记忆
本文介绍了C语言中文件操作的基本概念和实现方法。首先通过比喻说明文件操作的重要性,即将数据永久保存到硬盘。然后详细讲解文件操作的核心概念:流(stream)作为程序和外界沟通的"管道",以及FILE结构体作为文件信息区。文章重点阐述了文件操作三步骤:打开、读写、关闭,包括fopen/fclose函数的使用及各种打开模式。在读写部分,分别介绍了字符读写(fgetc/fputc)、字符串读写(fgets/fputs)、格式化读写(fprintf/fscanf)和数据块读写(fread/fwr
2026-02-27 11:52:40
751
原创 c语言学习:一道经典的笔试题分析值传递和址传递的差异
核心经验:指针作为参数传递时要注意值传递和地址传递的区别,必要时使用二级指针或返回值来修改指针指向。
2026-02-24 17:16:51
71
原创 函数指针实战:打造灵活的计算器程序
本文通过计算器程序示例演示了C语言函数指针的应用。首先展示了传统实现方式中代码重复的问题,然后引入函数指针解决方案:定义统一计算函数calc(),通过传入不同的运算函数指针(add/sub/mul/div)实现多态调用。这种设计显著提高了代码复用性,解耦了运算逻辑与调用接口,便于功能扩展。函数指针作为C语言实现多态的核心技术,不仅能优化代码结构,还为理解高级编程范式奠定了基础。
2026-02-08 19:53:43
63
原创 递归中的数学问题
3,确定递归关系,逐渐逼近跳出条件。在数学问题中比较特殊的一点是,递归关系有时候可以用递推公式表达。(类似高中的数列问题)2,确定跳出后的返回值。(涉及加法一般是0,涉及乘法一般是1,具体情况具体分析)哎呀,也是又学了一段时间,发csdn这事好久不做了。化大为小,化繁为简,层层剥离,最后又逆序返回。最重要的就是就是找到最简单,最内层的情况。1,寻找跳出条件(也就是最内层情况)
2025-10-17 22:48:05
380
原创 0.编译器与链接器
编译C语言程序需要将源代码(.c)转换为机器可执行文件(.exe),中间经过目标文件(.obj)阶段。编译器将.c文件编译成.obj文件(包含机器码但未完全解析),链接器再将.obj文件和库文件链接生成可执行的.exe文件。这一过程类比于烹饪,.c是菜谱,.obj是半成品,.exe是成品菜。计算机只能执行二进制代码,因此需要通过编译器和链接器将人类可读的代码转换为可执行程序。
2025-09-08 21:16:31
384
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅