第二天 C语言预备知识

发布时间:2026/10/6 5:09:52

第二天 C语言预备知识 一.低级高级语言指的是更接近硬件层级还是应用层级二.GCC广泛使用的编译器其编译过程(.c)1.预处理:gcc -E main.c -o main.i在编译前把代码中的宏名直接替换成对应的文本(宏定义),展开头文件删除注释,处理条件编译。2.编译gcc -S main.i -o main.s将.c文件转换成汇编文件3.汇编:gcc -c main.s -o main.o将汇编文件转换成二进制文件目标文件4.链接gcc main.o -o main.exe将多个二进制文件目标文件.o和库文件合并成一个可执行文件.exe先将源文件通过预处理器cpp进行预处理再通过编译器gcc)将源文件编译成汇编文件再通过汇编器as)转换成二进制文件目标文件.obj 最后通过链接器ld将多个目标文件和库文件链接成最终可执行文件.exe链接阶段是发生未定义函数错误的阶段。在链接阶段编译器会将编译后的目标文件与库文件、其他目标文件进行链接。如果存在函数的调用但是没有对应的函数定义或者在链接的文件中找不到定义链接器会报告一个“未定义引用”错误。这时编译器才能检测出是否有未定义的函数。编译阶段在这个阶段编译器会将源代码转换成目标代码即机器码。此时编译器会检查语法错误、类型错误等但它通常不会检查是否有未定义的函数。只要函数已被声明或者其定义可以在某个地方找到编译器就会继续生成目标代码。三.IDE(集成开发环境的软件)一般包括代码编辑器编译器调试器和图形用户界面工具。四.C语言支持结构化编程不支持面向对象编程支持低级内存操作具有良好的可移植性具有高的执行效率五.main()函数是程序的入口也叫主函数有且只有一个.c文件源文件:.c文件包含程序主要实现代码.h文件头文件:通常包含函数的声明宏定义结构文体定义全局变量声明以及其他需要在多个源文件中共享的内容。六.使用#ifdef和#endif可以避免包含同一头文件。使用#ifdef条件编译且条件不满足时可能导致头文件内容被忽略。.obj文件通常是目标文件后缀七.在C语言中main()函数返回类型为int,表示程序的退出状态。通常返回0表示成功返回非0表示出错0八.main()函数 int argc表示命令行参数的数量argc是一个整数表示通过命令行传递给程序的参数数量。包括程序名称在内argc的值总是至少为1。int main(int argc, char *argv[ ])int main(int argc, char **argv) 等价写法argv 是指向字符串数组的指针argc 是 “argument count” 的缩写意思是 命令行参数的个数。argv[argc] 始终是 NULL 空指针结束标记
延伸阅读

更多相关文章

2026/10/6 5:09:23

掌握LangGraph:让智能体自主选择最合适的工具(收藏版)

本文深入解析如何运用LangGraph技术,使智能体能够针对不同问题自主判断并选择最适配的工具——无论是向量搜索、图遍历还是网络搜索。传统RAG模型固定执行序列,无法灵活应对多样化问题,而本文介绍的Agentic RAG通过状态机设计,赋予…

2026/10/6 5:06:37

从 Demo 到生产级别的 Agent 项目

交互响应同步响应同步响应就是最简单的,给模型一个输入,然后一直在那里等,等到有答案了一股脑全部返回。SSE 流式输出SSE 流式输出是大模型会生成很多个字,每生成一个就推送给前端,看上去就好像在打字一样。异步输出异…

2026/10/5 5:47:05

SuperGrok Heavy与Cursor Ultra组合:AI编程工具生态整合实践指南

如果你是一名开发者,最近可能被各种 AI 编程工具的消息刷屏了。从 GitHub Copilot 到 Cursor,再到各种宣称“最强”的模型,选择太多,反而让人困惑:到底哪个工具能真正融入我的工作流,而不是增加新的学习成本…

2026/10/6 5:08:36

一文搞懂CUDA线程模型:SM、SP、Block、Thread到底如何对应

学习CUDA的人,几乎都会在某个深夜盯着一堆缩写问出同一个问题:SM、SP、GRID、BLOCK、THREAD,这几个东西到底是怎么对应的?网上文章不少,但要么是概念罗列,要么直接丢一张芯片架构图让人自己悟。我当年从CPU…

2026/10/6 5:08:36

微信小程序钢琴弹奏:从音频延迟到交互优化的实践指南

简介:面向微信小程序入门者与音乐爱好者,《微信趣味小程序-钢琴弹奏》提供了一套轻量完整的微信端虚拟钢琴交互实现。压缩包共36个文件、仅427KB,包含21个按音阶命名的mp3钢琴采样、6个json配置与儿歌谱数据、4个js逻辑脚本,以及3…

2026/10/6 5:08:36

TransModeler交通事件建模与管理策略实战

做交通仿真的同行应该都有体会:常规的OD仿真做多了,人会陷入一种错觉,觉得路网模型跑通、信号配时调好、流量标定对得上,项目就算交付了。但真正把模型推到实战场景里,比如处理一起突发事故、一次临时管控、一段异常天…

2026/10/6 5:08:36

OpenShell完全指南:让Windows开始菜单回归经典可控

我第一次正经用 OpenShell,是因为一台 Windows 10 旧电脑已经卡到开始菜单要转好几秒才弹出来。那台机器是给长辈看视频用的,弹出什么推荐位、磁贴广告,对使用者都是纯干扰。当时我装完系统顺手装了 OpenShell,把开始菜单固定成传…

2026/10/6 5:08:36

Redis缓存击穿全解析:热点Key防护与多级缓存实战

做后端开发这十来年,Redis 相关的线上事故我处理过不少。要说哪种问题最容易让人头皮发麻,缓存击穿绝对排得上前三。它不是那种简单的"查不到数据"报错,而是在某个热点 Key 过期的瞬间,几万个请求同时涌向数据库&#x…

2026/10/6 5:03:36

西门子S7-200与MCGS触摸屏的自动加料机控制方案详解

做自动加料机这套控制系统,我把西门子S7-200和MCGS触摸屏的组合从头到尾捋了一遍,从IO分配、梯形图程序到组态画面,再到现场接线和调试,中间踩了不少坑。这篇内容就是我实际做过之后整理出来的完整记录,不光是给个程序…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/6 4:01:51

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/5 17:38:27

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 0:03:23

MR25H40CDF+STM32F031C6工业级高可靠数据存储方案

1. 项目概述:为什么在工业现场非得用 MR25H40CDF 配 STM32F031C6 做数据存储?在工厂产线的 PLC 控制柜里、在风电变流器的散热片背面、在矿井监测终端的金属外壳下,你经常能看到一块指甲盖大小的黑色芯片——它既不是 Flash,也不是…

2026/10/6 0:03:23

MRAM+STM32工业断电数据保全实战指南

1. 项目概述:为什么在工业现场非得用 MR25H40CDF 配 STM32F031C6 做数据存储?在工厂产线的PLC柜里、在野外无人值守的环境监测终端里、在高速运转的包装机控制板上,你经常能看到一块指甲盖大小的黑色芯片,旁边贴着“MR25H40CDF”丝…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑